LeetCode-242.有効なアルファベット異位語-Python 3解法
問題解決の考え方1:
1.2つのリストを用意する:list 1:26個の0,[0,0,0,...,0],list 2:26個の小文字の英字[‘a’,‘b’,‘c’,...,‘y’,‘z’]2.入力された文字列sを遍歴し、リストリストリストt 2にこの値があるかどうかを探し、ある場合はリストリストリストt 1に対応する位置+1、文字列tは同じであり、リストリストリストリストt 1に対応する位置-1にすぎない.
遍歴した後、有効アルファベットの異位語(使用するアルファベットの種類、個数は同じで、位置が異なるだけ)であれば、リストリストリストt 1は変わらず、すべてゼロです.有効アルファベットの異位語でなければ、リストリストリストリストt 1にはゼロではない値があります.例えばリストリストリストt 1=[-1,0,1,...,0]などの場合3.リストリストリストt 1を順番に並べ替え、リストリストリストt 1を巡回し、先頭と末尾の値が0に等しくない場合は、いいえ、Falseを返し、他の場合はTrueを返します.
問題解決の考え方2:
1.入力s,t文字列をリストリストリストt 1,リストt 2として順番に並べ替える.文字列が「」である場合、None、直接Trueを返します.内容があれば、2つのリストを最初から1つずつ比較し、1つが異なる場合はFalseを最後まで返し、同じ場合はTrueを返します.
質問があればブロガーに連絡してください:微信:hrvrap qq:250419087
1.2つのリストを用意する:list 1:26個の0,[0,0,0,...,0],list 2:26個の小文字の英字[‘a’,‘b’,‘c’,...,‘y’,‘z’]2.入力された文字列sを遍歴し、リストリストリストt 2にこの値があるかどうかを探し、ある場合はリストリストリストt 1に対応する位置+1、文字列tは同じであり、リストリストリストリストt 1に対応する位置-1にすぎない.
遍歴した後、有効アルファベットの異位語(使用するアルファベットの種類、個数は同じで、位置が異なるだけ)であれば、リストリストリストt 1は変わらず、すべてゼロです.有効アルファベットの異位語でなければ、リストリストリストリストt 1にはゼロではない値があります.例えばリストリストリストt 1=[-1,0,1,...,0]などの場合3.リストリストリストt 1を順番に並べ替え、リストリストリストt 1を巡回し、先頭と末尾の値が0に等しくない場合は、いいえ、Falseを返し、他の場合はTrueを返します.
class Solution:
def isAnagram(self, s: str, t: str):
list1=[0]
list1 = list1 * 26
list2 = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
for i in s:
list1[list2.index(i)]+=1
for l in t:
list1[list2.index(l)]-=1
for k in list1:
list1.sort()
if list1[0] !=0 or list1[-1]!=0:
return False
else:
return True
問題解決の考え方2:
1.入力s,t文字列をリストリストリストt 1,リストt 2として順番に並べ替える.文字列が「」である場合、None、直接Trueを返します.内容があれば、2つのリストを最初から1つずつ比較し、1つが異なる場合はFalseを最後まで返し、同じ場合はTrueを返します.
class Solution:
def isAnagram(self, s: str, t: str):
list1=list(s)
list2=list(t)
list1.sort()
list2.sort()
if len(list1)==0:
return True
else:
if len(list1) == len(list2):
for i in range(len(list1)):
if list1[i] == list2[i]:
if list1[i] == list1[-1]:
return True
else:
return False
else:
return False
質問があればブロガーに連絡してください:微信:hrvrap qq:250419087