算法65----字符串

题目:

  1. 判断两个字符串是否互为变形词
  2. 字符串中数字子串的求和
  3. 去掉字符串中连续出现k个0的子串
  4. 判断两个字符串是否互为旋转词
  5. 将整数字符串转成整数值
  6. 替换字符串中连续出现的指定字符串
  7. 字符串的统计字符串
  8. 判断字符数组中是否所有的字符都只出现过一次
  9. 在有序但含有空的数组中查找字符串
  10. 字符串的调整与替换
  11. 翻转字符串
  12. 数组中两个字符串的最小距离
  13. 添加最少字符使字符串整体都是回文字符串
  14. 括号字符串的有效性和最长有效长度
  15. 公式字符串求值

一、判断两个字符串是否互为变形词

题目:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,则str1和str2互为变形词。
请实现函数判断两个字符串是否互为变形词。
举例:
str1="123", str2="231", 返回true;
str1="123", str2="2331",返回false。

思路:

 1. 首先比较两个字符串的长度,长度不同肯定是false。

 2. 如果长度相同,新建一个字典,用以存储每个字符出现次数。

 3. 遍历str1,在str1 中出现一次就加1,遍历str2,在str2 中出现一次就减1,最后遍历完str2没有出现负值,就返回true。

代码:

from collections import Counter
def IsDeformation(str1,str2):
    if not str1 or not str2 or len(str1) != len(str2):
        return False
    countstr1 = Counter(str1)
    for s2 in str2:
        if s2 in countstr1:
            countstr1[s2] -= 1
            if countstr1[s2] < 0:
                return False
        else:
            return False
    return True
str1 = '1234'
str2 = '2313'
IsDeformation(str1,str2)

猜你喜欢

转载自www.cnblogs.com/Lee-yl/p/10026176.html