2017-10-22 10 views
-1

私たちが入力したもの(例:EXAMPLE)の長​​さが同じで、同じ文字が(XAMPLEE)であるかどうかを確認するプログラムを作るにはどうすればよいですか?パリンドロームと同様にアナグマティズム?

+1

のための効率的なPythonコードであるあなたが書いたとしようとしたコードを提供してくれる、とあなたは、このコードで直面する問題についてより具体的にしてください。 –

答えて

0

これはそれ

NO_OF_CHARS = 256 
def areAnagram(str1, str2): 

    # Create two count arrays and initialize all values as 0 
    count1 = [0] * NO_OF_CHARS 
    count2 = [0] * NO_OF_CHARS 

    # For each character in input strings, increment count 
    # in the corresponding count array 
    for i in str1: 
     count1[ord(i)]+=1 

    for i in str2: 
     count2[ord(i)]+=1 

    # If both strings are of different length. Removing this 
    # condition will make the program fail for strings like 
    # "aaca" and "aca" 
    if len(str1) != len(str2): 
     return 0 

    # Compare count arrays 
    for i in xrange(NO_OF_CHARS): 
     if count1[i] != count2[i]: 
      return 0 

    return 1 
str1 = "EXAMPLE" 
str2 = "XAMPLEE" 
if areAnagram(str1, str2): 
    print "The two strings are anagram of each other" 
else: 
    print "The two strings are not anagram of each other" 
0
import array 

word1 = "EXAMPLE" 
word2 = "XAMPLEE" 
letters = array.array('i',(0,)*26) 

# Count letters of word1 
for c in word1: 
    charIndex = ord(c) - ord('A') 
    letters[charIndex] = letters[charIndex]+1 

# Count letters of word2 and substract them from word1 count 
for c in word2: 
    charIndex = ord(c) - ord('A') 
    letters[charIndex] = letters[charIndex]-1 

# letters contains only 0 if words are the same 
if letters.count(0) < 26: 
    print("Words are different") 
else: 
    print("Words are anagrams")