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

JavaScriptでの表現力豊かな言葉の問題事例


「こんにちは」->「heeellooo」、「hi」->「hiiii」など、余分な感情を表すために文字を繰り返すことがあります。 「heeellooo」のようなこれらの文字列には、すべて同じである隣接する文字のグループがあります:「h」、「eee」、「ll」、「ooo」。

ある特定の文字列Sについて、次の拡張操作の任意の数のアプリケーションによってSと等しくなるようにできる場合、クエリワードは伸縮性があります。文字cで構成されるグループを選択し、グループにいくつかの文字cを追加します。グループのサイズが3以上になるようにします。

たとえば、「hello」から始めて、グループ「o」を拡張して「hellooo」を取得することはできますが、グループ「oo」のサイズが3未満であるため、「helloo」を取得することはできません。 「helllllooo」を取得するための「ll」->「lllll」のような別の拡張子。 S ="helllllooo"の場合、クエリワード "hello"は、次の2つの拡張操作のために伸縮性があります。query="hello" −> "hellooo" −> "helllllooo"=S。

クエリワードのリストを指定すると、伸縮性のあるワードの数を返す必要があります。

例-

入力文字列が-

の場合
const str = 'heeellooo';

そして、単語のリストは-

const words = ["hello", "hi", "helo"];

そして、出力は-

である必要があります
const output = 1

このためのコードは-

になります
const str = 'heeellooo';
const words = ["hello", "hi", "helo"];
const extraWords = (str, words) => {
   let count = 0;
   for (let w of words) {
      let i = 0;
      let j = 0;
      for (; i < str.length && j < w.length && w[j] === str[i];) {
         let lenS = 1;
         let lenW = 1;
         for (; i+lenS < str.length && str[i+lenS] === str[i]; lenS++);
         for (; j+lenW < w.length && w[j+lenW] === w[j]; lenW++);
         if (lenS < lenW || lenS > lenW && lenS < 3) break;
         i += lenS;
         j += lenW;
      }
      if (i === str.length && j === w.length) {
         count++;
      }
   }
   return count;
}
console.log(extraWords(str, words));

出力

そして、コンソールの出力は-

になります
1

  1. JavaScriptでバナナ問題を配布する

    問題 行列に並んでいる人がn人いるとすると、次のようにバナナを配りたいと思います- 最初の人に1本のバナナを、2人目の人に2本のバナナを与え、最後の人にn本のバナナを与えるまで続きます。 次に、行の最初に戻り、最初の人にn + 1本のバナナ、2人目の人にn + 2本のバナナを与え、最後の人に2*n本のバナナを与えるまで続けます。 このプロセスは、キャンディーがなくなるまで繰り返されます(毎回バナナをもう1つ与え、最後に到達した後、列の最初に移動します)。最後の人は残りのバナナをすべて受け取ります。 最初の引数として人数numを取り、2番目の引数としてバナナの数mを受け

  2. JavaScriptの文字列に存在する単語を逆にする

    問題 文を表す文字列を受け取るJavaScript関数を作成する必要があります。 この関数は、文字列に存在する語順を逆にして、新しい文字列を返す必要があります。 つまり、最後の単語が最初になり、最後から2番目が2番目になります。 例 以下はコードです- const str = 'this is some random string text'; const reverseWords = (str = '') => {    const strArr = str.split(' ');    s