ABC281(AtCoder Beginners Contest 281)
A問題とB問題をPythonで解いてみました。
- コードは雑めです。ゆるしてー
- 競技プログラミングの勉強一切したこと無いので、テクニックは知らないよ。ごめんねー
A問題(diff=6)
n = int(input())
for i in range(n,-1,-1):
print(i)
pythonのrange便利ッスねー
ワンライナーでも行けそう
B問題(diff=66)
def judge(s):
try:
if 'A'<= s[0] <= 'Z' and 'A'<= s[7] <= 'Z':
num = int(s[1:7])
if 100000 <= num <= 999999:
return 'Yes'
except:
pass
return 'No'
s = input()
print(judge(s))
文字列は必ずしも8文字と限らない(IndexErrorが出る)
真ん中の数字部分も英文字が混ざる可能性がある(ValueErrorが出る)
ので if文使うより便利だろうということで bare except を使用しました
関数化したのは趣味ですね。人それぞれで良いかと。
bare except はPython公式ドキュメントにも記載がありますがアプリ開発ではあまり使わないでね
追記
PythonでAtCoderを解くときにちょっと得するメモを使うともう少し短く書けるとは思う
B問題 A123456BC
みたいなのが本来はだめなのに Yes って出そう
- 指摘があったので追記しておきます。
- たまたまACしていますが、言われてみると確かにおかしいですね。
- テストケースに上記のようなパターンがなかったものと思われます。