变形词

# coding:utf-8
'''
解释:对于两个字符串A 和B,如果A 和B 中出现的字符种类相同且每种字符出现的次数相同,则A 和 B 互为变形词,检查两给定串是否互为变形词。
题目:给定两个字符串 A 和 B 及他们的长度,请返回一个 bool 值,代表他们是否互为变形词。
测试样例:
       “abc”,3,”bca”,3
返回:
       True
'''
def f(s):
    d_num=dict.fromkeys(s,0)
    for i in s:
        d_num[i] += 1
    return d_num

def f2(s1,s2):
   if s1 == None or s2 ==None or len(s1)!=len(s2):
     return False d1=f(s1) for s in s2: if s in s1: d1[s] -= 1 if d1[s]<0: return False else: return False return True def isDeformation1(str1, str2): if str1 == None or str2 == None or len(str1) != len(str2): return False array = [0 for i in range(256)] for i in range(len(str1)):#迭代字符串,字符对应的ASCII,作为array数组的下标,每出现一次相同字符,对应下标的值增加1,进而记录字符出现的次数 array[ord(str1[i])] += 1#ord取ASCII码, for i in range(len(str2)): array[ord(str2[i])] -= 1 if array[ord(str2[i])] < 0: return False return True s1='aaa|bc' s2='abaac-' print(f2(s1,s2)) print isDeformation1(s1,s2)

  

posted @ 2019-07-25 08:56  笨笨的妞  Views(202)  Comments(0Edit  收藏  举报