文字列の重複カウント《Bランク UP メニュー》

 Bランクレベルアップメニュー【文字列の長さ・文字列の1文字目・1文字ずつ出力・文字列の重複カウント】

【STEP: 1】コード

reader.on('close', () => {
   const s = lines[0];
   console.log(s.length);  // s の文字数を出力
});
hogeちゃんの画像

s.lengths の文字数 を取得。

【STEP: 2】コード

reader.on('close', () => {
   const s = lines[0];
   console.log(s[0]);  // s の一文字目を出力
});
hogeちゃんの画像

s[0]s の一文字目が取得できました。

【STEP: 3】コード

reader.on('close', () => {
   const s = lines[0];
   for (let i = 0; i < s.length; i++) {
      console.log(s[i]);  // si 文字目を数を出力
   }
});
hogeちゃんの画像

for文 の カウント変数 i の上限値を s.length 未満 に設定して s[i] を表示しました。

【STEP: 4】コード

reader.on('close', () => {
   const s = lines[0];
   console.log(s[0], s[1]);  // s の 0文字目,1文字目を出力
});
hogeちゃんの画像
一文字目が s[0] で 二文字目が s[1] 。

【STEP: 5】コード

reader.on('close', () => {
   const n = lines[0] - 1;
   const s = lines[1];
   if (s[n + 1]) {  // s[n + 1] が true なら…
      console.log(s[n], s[n + 1]);  // sn 文字目, n + 1 文字目を出力
   }
});
hogeちゃんの画像

index は 0 から始まるので 予め 入力から -1して s[n + 1]true のときのみ s[n], s[n + 1] を表示しています。

【FINAL】コード

reader.on('close', () => {
   const [s, t] = lines;
   const sl = s.length;  // s の文字数
   const tl = t.length;  // t の文字数
   let ans = 0;  // 出力値
   for (let i = 0; i <= tl - sl; i++) {
      const str = t.substr(i, sl);  // t の部分文字列(i 文字目 ~ sl 文字目)
      if (str === s) {  // strs が一致すれば…
         ans++;  // 出力値を加算
      }
   }
   console.log(ans);
});
hogeちゃんの画像

for文で tsl = s.length 文字分の部分文字列を全て調べ s と一致していれば ans++。

コメント