Closed4
順列全探索
import itertools
# 文字列 A, B の文字が異なる箇所の個数を求める関数
def diff(A, B):
res = 0
for a, b in zip(A, B):
if a != b:
res += 1
return res
N, M = map(int, input().split())
S = [input() for _ in range(N)]
S.sort()
for T in itertools.permutations(S):
ok = True
for i in range(N - 1):
if diff(T[i], T[i+1]) != 1:
ok = False
if ok:
print("Yes")
exit()
print("No")
itertools.permutationsをイメージ
import itertools
N, M = map(int, input().split())
S = [input() for _ in range(N)]
S.sort()
for T in itertools.permutations(S):
print(T)
入力
4 4
bbed
abcd
abed
fbed
出力
('abcd', 'abed', 'bbed', 'fbed')
('abcd', 'abed', 'fbed', 'bbed')
('abcd', 'bbed', 'abed', 'fbed')
('abcd', 'bbed', 'fbed', 'abed')
('abcd', 'fbed', 'abed', 'bbed')
('abcd', 'fbed', 'bbed', 'abed')
('abed', 'abcd', 'bbed', 'fbed')
('abed', 'abcd', 'fbed', 'bbed')
('abed', 'bbed', 'abcd', 'fbed')
('abed', 'bbed', 'fbed', 'abcd')
('abed', 'fbed', 'abcd', 'bbed')
('abed', 'fbed', 'bbed', 'abcd')
('bbed', 'abcd', 'abed', 'fbed')
('bbed', 'abcd', 'fbed', 'abed')
('bbed', 'abed', 'abcd', 'fbed')
('bbed', 'abed', 'fbed', 'abcd')
('bbed', 'fbed', 'abcd', 'abed')
('bbed', 'fbed', 'abed', 'abcd')
('fbed', 'abcd', 'abed', 'bbed')
('fbed', 'abcd', 'bbed', 'abed')
('fbed', 'abed', 'abcd', 'bbed')
('fbed', 'abed', 'bbed', 'abcd')
('fbed', 'bbed', 'abcd', 'abed')
('fbed', 'bbed', 'abed', 'abcd')
このスクラップは14日前にクローズされました