Bランクレベルアップメニュー【文字列の長さ・文字列の1文字目・1文字ずつ出力・文字列の重複カウント】
【STEP: 1】コード
reader.on('close', () => {
const s = lines[0];
console.log(s.length); // s の文字数を出力
});
s.length
で s の文字数 を取得。
【STEP: 2】コード
reader.on('close', () => {
const s = lines[0];
console.log(s[0]); // s の一文字目を出力
});
s[0]
で s の一文字目が取得できました。
【STEP: 3】コード
reader.on('close', () => {
const s = lines[0];
for (let i = 0; i < s.length; i++) {
console.log(s[i]); // s の i 文字目を数を出力
}
});
for文 の カウント変数 i の上限値を s.length
未満 に設定して s[i] を表示しました。
【STEP: 4】コード
reader.on('close', () => {
const s = lines[0];
console.log(s[0], s[1]); // s の 0文字目,1文字目を出力
});
一文字目が 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]); // s の n 文字目, n + 1 文字目を出力
}
});
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) { // str と s が一致すれば…
ans++; // 出力値を加算
}
}
console.log(ans);
});
for文で t の sl = s.length
文字分の部分文字列を全て調べ s と一致していれば ans++。
コメント