同じ文字がn距離離れるように文字列を再配置しますJavaScript
繰り返し文字を含む文字列を受け取り、すべての同じ文字が互いに正確にn文字離れている新しい文字列を返すJavaScript関数を作成する必要があります。また、その数は配列の長さよりも小さくする必要があります。
例-
If the input string is: "accessories" And the number n is 3 Then, The return value should be: "secrsecisao"になります。
注 −必要な出力を達成するために他の順列がある可能性があります。順序は重要ではありません。ロジックに固執する必要があり、それを満たす限り、出力は正しいです。
この関数のコードを書いてみましょう-
例
const str = 'accessories'; const equalDistance = (str, num) => { const map = str.split("").reduce((acc, val) => { const count = acc.get(val); if(typeof count === 'number'){ acc.set(val, count+1); }else{ acc.set(val, 1); }; return acc; }, new Map()); const arr = Array.from(map).sort((a, b) => b[1] - a[1]); let newString = ''; for(let i = 0, count = 0; i < str.length;){ if(!arr[count][1]){ arr.splice(count, 1); continue; }; newString += arr[count][0]; arr[count][1]--; i++; count = i % num; }; return newString; }; console.log(equalDistance(str, 4)); console.log(equalDistance('abb', 2)); console.log(equalDistance('aacbbc', 3));
出力
コンソールの出力は-
になりますsceasceosri bab acbacb
-
文字列kの距離をC++で並べ替える
空でない文字列sと整数kがあるとします。同じ文字が少なくとも互いに距離kになるように、文字列を再配置する必要があります。指定された文字列は小文字です。文字列を再配置する方法がない場合は、空の文字列になります。 したがって、入力がs =aabbcc、k =3の場合、同じ文字が少なくとも互いに3の距離にあるため、出力はabcabcになります。 これを解決するには、次の手順に従います- ret:=空の文字列 1つのマップを定義するm n:=sのサイズ 初期化i:=0の場合、i
-
すべての同じ文字がd距離になるように文字列を再配置するPythonプログラム
空でない文字列strと整数kが与えられた場合、同じ文字が互いに少なくとも距離kになるように文字列を再配置します。 すべての入力文字列は小文字で示されます。文字列を並べ替えることができない場合は、空の文字列を返します。 例1: str = “tutorialspoint”, k = 3 Answer: “tiotiotalnprsu” 同じ文字が少なくとも3文字離れている。 str = "aabbcc", k = 3 Answer: "abcabc" The same characters are