問題 | 問題名 | Difficulty |
---|---|---|
A | QQ solver | 9 |
B | Caesar Cipher | 82 |
C | Graph Isomorphism | 685 |
axb
の形式によって成り立っている文字列が与えられるので,の値を出力する, という問題でした.文字列A.split("文字列B")
では, 文字列Aの文字列に対し, 文字列Bで区切った場合の分割を, リストにして取得することが可能です."3.14".split(".")
= ['3', '14']
S.input("x")
を用いることにより, Sをx
で区切った文字列のリストを取得出来ます.#文字列Sを受け取る.
S = input()
#文字列Sを'x'で区切った文字列のリストにする.
S = S.split("x")
#1文字目と2文字目の積を計算して出力. int型にすることを忘れないこと.
print(int(S[0]) * int(S[1]))
#文字列Sを受け取る.
S = input()
#答えを出力する. int型にすることを忘れないこと.
print(int(S[0]) * int(S[2])
split
というメソッドは, 文字列を分解するときに利用するので, 覚えておきましょう."a"
から数えて何番目かは文字コードにより簡単に分かります.a | b | c | d | e | ... | z |
---|---|---|---|---|---|---|
97 | 98 | 99 | 100 | 101 | ... | 122 |
S = list(input())
T = list(input())
#A[i] = i文字目における Xの値
A = [0 for i in range(len(S))]
for i in range(len(S)):
if ord(S[i]) <= ord(T[i]):
X = ord(T[i])-ord(S[i])
else:
X = 26 - (ord(S[i])-ord(T[i]))
A[i] = X
#この場合, すべてのAの値が同じであればYesとなる.集合で管理した。
if len(set(A)) == 1:
print("Yes")
else:
print("No")
from itertools import permutations
N,M = map(int,input().split())
g_t = [[] for i in range(N)]
g_a = [[] for i in range(N)]
for i in range(M):
a,b = map(int,input().split())
a -= 1
b -= 1
g_t[a].append(b)
g_t[b].append(a)
for i in range(M):
a,b = map(int,input().split())
a -= 1
b -= 1
g_a[a].append(b)
g_a[b].append(a)
L = permutations([i for i in range(N)],N)
ft = 0
for _ in L:
ao = list(_)
#ao[i] = aoにおけるi番目のボール
f = 0
for i in range(N):
for m in range(len(g_t[i])):
j = g_t[i][m]
if ao[j] in g_a[ao[i]]:
continue
#i -> j と P[i] -> P[j] は同値
else:
f += 1
break
if f == 0:
ft += 1
if ft >= 1:
print("Yes")
else:
print("No")