比较字符串

来源:互联网 发布:怎么报考网络教育 编辑:程序博客网 时间:2024/04/28 19:10

题目描述:比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母

样例:给出 A = "ABCD", B = "ACD",返回 true;给出 A = "ABCD", B = "AABC", 返回 false

这里面需要注意的是A,B中可能有重复的字符。

因此,既然是判断A是否全部包含B,可以这样做:

1. 扫描A,然后用一个hash表记录A中出现的每一个每个字符以及出现的次数。

2. 扫描B,在上一步生成的hash表中查找扫描的B的字符,若找到,令hash表相应的键所对应的值-1,若找不到,或者现在某个键所对应的值小于0了(也就是为-1了)那么直接返回False

3. 若将B扫描完,还没返回False,则返回True.

思路清楚了,代码就很简单:

class Solution:    """    @param A : A string includes Upper Case letters    @param B : A string includes Upper Case letters    @return :  if string A contains all of the characters in B return True else return False    """    def compareStrings(self, A, B):        hash_table = {}        for i in A:            if i not in hash_table:                hash_table[i] = 1            else:                hash_table[i] += 1        for i in B:            if i in hash_table:                hash_table[i] -= 1                if hash_table[i] < 0:                    return False            else:                return False        return True        # write your code here




0 0
原创粉丝点击