アナック
10717 ワード
作成日:2022年1月29日午後5:52
の基本論理は同じである. ディレクトリにキー値がある場合はvalueに1を加え、ない場合はそのキー値をディレクトリに追加し、valueを1に設定する部分では、
インプリメンテーションコード
# 아나그램(구글)
import sys
sys.stdin = open("input.txt", "rt")
first = input()
second = input()
firstDic = {}
secondDic = {}
for x in first:
if x in firstDic:
firstDic[x] += 1
else:
firstDic[x] = 1
for x in second:
if x in secondDic:
secondDic[x] += 1
else:
secondDic[x] = 1
if firstDic == secondDic:
print("YES")
else:
print("NO")
模範解答
import sys
sys.stdin=open("input.txt", "r")
a=input()
b=input()
str1=dict()
str2=dict()
for x in a:
str1[x]=str1.get(x, 0)+1
for x in b:
str2[x]=str2.get(x, 0)+1
for i in str1.keys():
if i in str2.keys():
if str1[i]!=str2[i]:
print("NO")
break
else:
print("NO")
break
else:
print("YES")
<개선된 코드>
import sys
#sys.stdin=open("in1.txt", "r")
a=input()
b=input()
sH=dict()
for x in a:
sH[x]=sH.get(x, 0)+1
for x in b:
sH[x]=sH.get(x, 0)-1
for x in a:
if(sH.get(x)>0):
print("NO")
break;
else:
print("YES")
差異
if x in firstDic:
firstDic[x] += 1
else:
firstDic[x] = 1
str1[x]=str1.get(x, 0)+1
の前の2つのコードが同じ役割を果たします.(get()を使用して、コードを1行に減らすことができます.)Reference
この問題について(アナック), 我々は、より多くの情報をここで見つけました https://velog.io/@lsj8706/아나그램딕셔너리-해쉬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol