問題概要
問題ページ
-
B - uNrEaDaBlE sTrInG
問題ページへ移動する
問題文
先頭から奇数番目の文字が全て英小文字であり、かつ、先頭から偶数番目の文字が全て英大文字であるような文字列を 読みにくい文字列 と呼びます。
文字列 \(S\) が読みにくい文字列かどうか判定してください。
制約
- \(S\) は英大文字及び英小文字のみからなる
- \(S\) の長さは \(1\) 以上 \(1000\) 以下
問題の考察
文字列のうち奇数番目は小文字、偶数番目は大文字であるか判定する問題。
python
の場合には、lower()
で小文字に、upper()
で大文字に変換できる。
次のようにして、文字列が大文字か小文字か判別できる。
pythonのメリット
lower()
で小文字に変換- 変換前と変換後が一致\(=\)変換前は小文字
- 変換前と変換後が不一致\(=\)変換前は大文字
upper()
で小文字に変換- 変換前と変換後が一致\(=\)変換前は大文字
- 変換前と変換後が不一致\(=\)変換前は小文字
for
文で文字列を全て調べてれば、奇数番目は小文字、偶数番目は大文字であるか判定できる。
文字列のi番目が奇数番目か偶数番目かの判定は、if
文を使ってif i % 2 == 0:
というようにしている。
たびすけ
大文字・小文字の判定は
こちらは頻出なので覚えてしまいましょう!
lower()
とupper()
でできます。こちらは頻出なので覚えてしまいましょう!
ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
s = str(input().rstrip('\n'))
for i in range(len(s)):
if i % 2 == 0:
if s[i].lower() != s[i]:
print("No")
exit()
else:
if s[i].upper() != s[i]:
print("No")
exit()
print("Yes")
if __name__ == '__main__':
solve()