第92回【JavaScript】整数と文字列、部分文字列

現在取り組んでいるのは、paiza ラーニング問題集「Cランクレベルアップメニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

JavaScript をゼロから勉強してみよう、のコーナー 92 回目です。

自席は壁際で、その壁に書き込みが出来るスペースのあるカレンダーを張っているのですが、今年のカレンダーは書き込みが出来るスペースが小さい! 毎年くださっていた会社さんがデザインを変えてしまわれたようで、とても残念です。

それでは、今日も頑張ってみようと思います。

整数と文字列 (paizaランク D 相当)

整数 n と、 n 個の整数 a_1, …, a_n が改行区切りで与えられるので、各 a_i (1 ≤ i ≤ n) の文字列としての長さを改行区切りで出力してください。


入力される値

n
a_1
...
a_n

1 行目には整数 n が与えられ、 2 行目から (n + 1) 行目には n 個の整数 a_1, …, a_n が改行区切りで与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

各 a_i (1 ≤ i ≤ n) の文字列としての長さを改行区切りで出力してください。

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・1 ≤ n ≤ 50
・各 a_i (1 ≤ i ≤ n) について、 0 ≤ a_i ≤ 10000


入力例

2
10
100

出力例

2
3

文字列としての長さを調べるのは簡単。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const n = Number(lines[0]);
  for (let i = 1; i <= n; i++) {
      console.log(lines[i].length);
  }
});
Python
N = int(input())
for _ in range(N):
    a = input()
    print(len(a))

部分文字列 (paizaランク D 相当)

文字 a と文字列 S が与えられるので、 S に a が含まれているかどうか判定し、含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。


入力される値

a
S

1 行目に文字 a が、 2 行目に文字列 S が与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

S に a が含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

・a, S はそれぞれ大文字または小文字のアルファベットからなる文字、文字列
・S の長さは 1 以上 10 以下


入力例

Z
Kirishima

出力例

NO

含まれているかどうかはよくあるパターンだと思う。

JavaScript
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  const a = lines[0];
  const S = lines[1];
  if (S.includes(a)) {
      console.log('YES');
  } else {
      console.log('NO');
  }
});
Python
a = input()
S = input()
if a in S:
    print('Yes')
else:
    print('No')

最後に

模範解答では、1 文字ずつ判定していたが。includes ではダメなのだろうか。

Python の in 演算子は破壊力抜群だよなぁと思う。いろいろとコードを書いていて、気づくと使っている感じ。JavaScript では includes、もしくは、indexOf も使える。覚えておこう。

引き続き、よろしくお願いいたします!

Python の第92回はこちら