文字列JavaScriptのn番目のオカレンスを置き換えるポリフィルを作成します
たとえば、3つの引数、つまり-
を受け取るポリフィル関数removeStr()を作成したとします。-
subStr→削除される文字列の出現
-
num→これは、文字列から削除されるsubStrの数(num)番目の出現です
文字列からのsubStrの削除が成功した場合、関数はnewを返す必要があります。それ以外の場合は、すべての場合に-1を返す必要があります。
例-
const str = 'drsfgdrrtdr'; console.log(str.removeStr('dr', 3));
期待される出力-
'drsfgdrrt'
このためのコードを書いてみましょう-
例
const str = 'drsfgdrrtdr'; const subStr = 'dr'; const num = 2; removeStr = function(subStr, num){ if(!this.includes(subStr)){ return -1; } let start = 0, end = subStr.length; let occurences = 0; for(; ;end < this.length){ if(this.substring(start, end) === subStr){ occurences++; }; if(occurences === num){ return this.substring(0, start) + this.substring(end, this.length); }; end++; start++; } return -1; } String.prototype.removeStr = removeStr; console.log(str.removeStr(subStr, num));
出力
コンソールでのこのコードの出力は-
になりますdrsfgrtdr
コードを理解する-
-
removeStr()関数は、最初にsubStrが1つも発生していないかどうかをチェックします。次に、終了して-1を返す必要があります。
-
次に、スライディングウィンドウアルゴリズムを使用して、subStrin文字列の出現回数を記録します(ウィンドウのサイズはsubStrの長さに等しい)。
-
最初は左端のウィンドウから開始し、ウィンドウの終わりが元の文字列の終わりに達するまでウィンドウをスライドさせ続けます。
-
この方法で、発生数が必要な発生数と等しい場合、文字列からその発生をトリミングし、取得した新しい文字列を返します。
-
文字列全体を反復処理する場合は、文字列内に十分なsubStrの出現がないことを意味します。その場合、-1を返し、関数を終了する必要があります
最後に、removeStrプロパティをString.prototypeに追加して、stringfunctionとして呼び出すことができるようにします。
-
JavaScriptで文字列を圧縮する
連続する繰り返し文字を含む可能性のある文字列を受け取るJavaScript関数を作成する必要があります。 関数は次のように文字列を圧縮する必要があります- 'wwwaabbbb' -> 'w3a2b4' 'kkkkj' -> 'k4j' また、圧縮された文字列の長さが元の文字列以上の場合は、元の文字列を返す必要があります。 例- 「aab」は「a2b1」に圧縮できますが、長さが4に増えるため、関数は「aab」を返す必要があります。 例 このためのコードは-になります const str1 = 'www
-
Python-文字列内の重複するオカレンスを置き換えます
文字列内で重複するオカレンスを複製する必要がある場合は、キー、「インデックス」メソッド、およびリスト内包表記を使用できます。 リスト内包表記は、リストを反復処理してリストに対して操作を実行するための省略形です。 「index」メソッドは、特定の値/反復可能オブジェクトのインデックスを返します。 以下は同じのデモンストレーションです- 例 my_str = 'Jane is the best . Jane loves to cook. Jane and Will cook together' print("The string is : ") print