您的位置:首页 > 编程语言 > Go语言

Leetcode Algorithm No.242 Valid Anagram

2015-09-08 10:14 344 查看
问题描述:

Giventwo strings s and t, write a function to determineif t is an anagram of s.
Forexample,

s = "anagram", t = "nagaram",return true.

s = "rat", t = "car", returnfalse.
Note:

You may assume the string contains only lowercase alphabets.

解决方法:
一共有26个字母,为每个字母对应一个素数,让每个字母对应的素数都不相同。
将字符串s中所有出现过的字母所对应的素数相乘,会得到一个很大的乘数。
用这个乘数除以t字符串中所有出现过的字母对应的素数,全部可以除尽则说明是anagram.

Python 代码如下(python3.4)
def isAnagram(self, s, t):
reference = {'a':2,'b':3,'c':5,'d':7,'e':11,'f':13,'g':17,'h':21,'i':23,'j':31,'k':37,'l':41,'m':43,'n':47,'o':51,'p':53,'q':57,'r':61,'s':67,'t':71,'u':79,'v':87,'w':91,'x':101,'y':103,'z':107}
i=0
products = 1
while i< len(s):
products = products * reference[s[i]]
i=i+1
i=0
productt = 1
while i< len(t):
productt = productt * reference[t[i]]
i=i+1
if productt == products:
return True
else:
return False
s = "anagram"
t = "nagaram"
out=isAnagram(1, s, t)
print(out)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: