第93回【JavaScript】数字の文字列操作(基本)、数字の文字列操作(0埋め)

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

はじめに

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

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

LeoSaki(旦那)は、見られていないところで我武者羅、見られているとやる気がおきない。LunaSaki(嫁)は、まったく逆。なかなか難儀な二人がくっついたものです。

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

数字の文字列操作(基本) (paizaランク D 相当)

0 ~ 9 の数字が 4 つ並んだ文字列 S が与えられます。
左から 1 番目の数と 4 番目の数を足し合わせたものを a とし、 2 番目の数と 3 番目の数を足し合わせたものを b とします。

文字列としての a の末尾に文字列としての b を結合したものを出力してください。


入力される値

S

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

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


期待する出力

文字列としての a の末尾に文字列としての b を結合したものを出力してください。

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


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

・S は 0 ~ 9 の数字 4 文字からなる文字列


入力例

2134

出力例

64

型を理解することが、コードを理解する近道だと思っていたけれど、最近はあまり当てはまらない。

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 S = lines[0];
  const a = Number(S[0]) + Number(S[3]);
  const b = Number(S[1]) + Number(S[2]);
  console.log(String(a) + String(b));
});
Python
S = input()
a = int(S[0]) + int(S[3])
b = int(S[1]) + int(S[2])
print(str(a) + str(b))

数字の文字列操作(0埋め) (paizaランク D 相当)

0 ~ 999 の整数 n が与えられます。 n が 3 桁の数である場合には n をそのまま出力し、 n が 2 桁の数である場合には n の先頭に 0 をひとつ、 1 桁の数である場合には n の先頭に 0 をふたつ加えたものを出力してください。


入力される値

n

1 行目に整数 n が与えられます。

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


期待する出力

n を 3 桁で 0 埋めしたものを出力してください。

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


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

・0 ≤ n ≤ 999


入力例

7

出力例

007

ゼロ埋めはかなり多用する。dynamoDB なんかで複合キーを作るときとか、いろいろ工夫する必要があるので。最近は、Python では、f" を利用することが多い。

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]);
  console.log(('000' + n).slice(-3));
});
Python
S = input()
print(S.zfill(3))

最後に

模範解答では、while 文を利用している模様。確かに、汎用性は高そうだ。そういうやり方もある、と頭の片隅に入れておこうと思った。

Python のときに見ているはずで、忘れていたので、あまり自分の頭はあてにならないなぁ。

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

Python の第93回はこちら