Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで同一の文字を区切るための文字列のフォーマット


最初で唯一の引数として文字列を受け取るJavaScript関数を作成する必要があります。

関数は、2つの同一の文字が互いに隣接して配置されないように、文字列に存在する文字を再編成しようとする必要があります。

そのような組み合わせが少なくとも1つ存在する場合、関数はその組み合わせ文字列を返す必要があります。そうでない場合、関数は空の文字列を返す必要があります。

例-

入力文字列が-

の場合
const str = 'add';

次に、関数は-

を出力できます。
const output = 'dad';

以下はコードです-

const str = 'add';
const formatString = (str = '') => {
   const map = {};
   for(let i = 0; i < str.length; i++){
      map[str[i]] = map[str[i]] || 0;
      map[str[i]] ++;
   }
   let keys = Object.keys(map).sort((a, b) => {
      if(map[a] < map[b]){
         return 1;
      };
      return -1;
   });
   let flag = str.length%2?(Math.floor(str.length/2)+1):str.length/2;
   if(map[keys[0]] > flag){
      return "";
   };
   const res = [];
   let index = 0, max = str.length-1;
   while(keys.length){
      let currKey = keys.shift();
      let count = map[currKey];
      while(count){
         res[index] = currKey;
         index = index+2;
         if(index>max)
            index=1;
         count--;

      }
   }
   return res.join("");
};
console.log(formatString(str));

出力

以下はコンソール出力です-

dad

  1. JavaScriptでの文字列の文字の再グループ化

    問題 最初で唯一の引数として文字列strを受け取るJavaScript関数を作成する必要があります。 文字列strには、3種類の文字を含めることができます- 英語のアルファベット:(A-Z)、(a-z) 数字:0-9 特殊文字-残りのすべての文字 関数はこの文字列を反復処理し、正確に3つの要素で構成される配列を構築する必要があります。最初の要素には文字列に存在するすべてのアルファベットが含まれ、2番目の要素には数字が含まれ、3番目の特殊文字は文字の相対的な順序を維持します。最終的にこの配列を返す必要があります。 たとえば、関数への入力が 入力 const s

  2. C#での文字列の文字の交換

    文字列の文字を入れ替えるには、Selectメソッドを使用します。 まず、文字列が-であるとしましょう string str = "PQRQP"; ここで、Pのすべての出現をQと交換し、QをPと交換する必要があります- str.Select(a=> a == 'P' ? 'Q' : (a=='Q' ? 'P' : a)).ToArray(); 上記は文字を置き換えます。 競合コードを見てみましょう- 例 using System; using System.Linq; public class P