LoginSignup
1998ky262
@1998ky262

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ABC212のB問題がわからない。

解決したいこと

ここに解決したい内容を記載してください。

ABC212のB問題

a=list(str(input()))
if a[0]==a[1]==a[2]==a[3]:
    print("Weak")
    exit()
else:
    count=int(a[0])
    rep=0
    for i in range(1,3):
        count+=1
        count=count%10
        if not a[i]==str(count):
          print("Strong")
          exit()
print("Weak")

このようなコードを作成したのですが、一つだけWAになってしまいました。

0

3Answer

そのプログラムでは次の値のときに,Strongが正しいのにWeakと出してしまいます.

0120, 0121, 0122, 0124, 0125, 0126, 0127, 0128, 0129,
1230, 1231, 1232, 1233, 1235, 1236, 1237, 1238, 1239,
2340, 2341, 2342, 2343, 2344, 2346, 2347, 2348, 2349,
3450, 3451, 3452, 3453, 3454, 3455, 3457, 3458, 3459,
4560, 4561, 4562, 4563, 4564, 4565, 4566, 4568, 4569,
5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5679,
6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788,
7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899,
8900, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909,
9010, 9011, 9013, 9014, 9015, 9016, 9017, 9018, 9019
1

コードの意図としては2文字目、3文字目,4文字目のindexを作る為にfor文を用意していますが、 for i in range(1,3):for i in [1,2] と評価されるためこの箇所が不適切です。
8行目を for i in range(1,4): に書き換えればOKです。

1

一つだけWAになってしまいました

そのテストケースの入力は1230で、正解はStrongです。
WAということは、このケースをWeakと判断したということで、理由は4文字目を正く判断していないからです。

0

Your answer might help someone💌