JavaScriptの循環文字列の一意のサブ文字列
問題
S、strがあるとします。これは、文字列の無限のラップアラウンド文字列です-
"abcdefghijklmnopqrstuvwxyz".
したがって、Sは次のようになります-
"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".
strを取り込むJavaScript関数を作成する必要があります。その文字列strを唯一の引数として呼び出しましょう。
-
この関数は、strの一意の空でない部分文字列がSにいくつ存在するかを調べる必要があります。
-
この関数は、最終的に、文字列S内のstrの空でない異なる部分文字列の数を返す必要があります。
たとえば、関数への入力が-
の場合const str = "zab";
その場合、出力は-
になります。const output = 6;
出力の説明
文字列Sには、文字列「zab」の6つの部分文字列「z」、「a」、「b」、「za」、「ab」、「zab」があります。
例
このためのコードは-
になりますconst str = "zab"; const allSubstrings = (str = '') => { const dp = new Array(26).fill(0); dp[str.charCodeAt(0) - 97] = 1; maxCount = 1; for (let i = 1; i < str.length; i++) { if ((str.charCodeAt(i) - str.charCodeAt(i - 1) == 1) || (str.charCodeAt(i) - str.charCodeAt(i - 1) == -25)) { maxCount++; } else { maxCount = 1; } dp[str.charCodeAt(i) - 97] = Math.max(dp[str.charCodeAt(i) - 97], maxCount); } return dp.reduce((item, val) => { return val + item; }) }; console.log(allSubstrings(str));
出力
そして、コンソールの出力は-
になります6
-
JavaScriptで一意の文字を含むように文字列をフィルタリングする
問題 文字列strを受け取るJavaScript関数を作成する必要があります。この関数は、入力文字列から一意の文字のみを含む新しい文字列を作成し、重複する文字の出現をすべて削除する必要があります。 例 以下はコードです- const str = 'hey there i am using javascript'; const removeAllDuplicates = (str = '') => { let res = ''; for(let i = 0; i < str.len
-
JavaScriptを使用して文字列にすべての一意の文字が含まれているかどうかを確認する
問題 文字列内のすべての文字が1回だけ表示される場合はtrueを返し、それ以外の場合はfalseを返すJavaScript関数を作成する必要があります。 例 以下はコードです- const str = 'thisconaluqe'; const allUnique = (str = '') => { for(let i = 0; i < str.length; i++){ const el = str[i]; if(str.indexOf