前提・実現したいこと
AtCoderの過去問を解いて練習しているのですが、
以下の問題が解説を読んでも理解できずにいます。
https://atcoder.jp/contests/abc219/tasks/abc219_c
発生している問題・エラーメッセージ
WAになってしまう。
該当のソースコード
以下のソースを作成しました。
python
1import functools 2 3X: list = list(input()) 4pos: dict = {} 5 6for i, x in enumerate(X): 7 pos[x] = i 8 9N: int = int(input()) 10 11S: list = [] 12for _ in range(N): 13 S.append(input()) 14 15 16def original_sort(s1, s2): 17 length = min(len(s1), len(s2)) 18 if len(s1) > len(s2): 19 s2, s1 = s1, s2 20 21 count = 1 22 for i in range(length): 23 if pos[s1[i]] > pos[s2[i]]: 24 return 1 25 elif pos[s1[i]] < pos[s2[i]]: 26 return -1 27 else: 28 if count == length: 29 return 0 30 count += 1 31 32 33sorted_S = sorted(S, key=functools.cmp_to_key(original_sort)) 34 35[print(s) for s in sorted_S] 36
試したこと
公式解説がC++なので、Pythonで再現できているか不明です。
どの辺りがおかしいかご教示いただきたいです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/13 22:43