码迷,mamicode.com
首页 > 其他好文 > 详细

两个字符串是变位词(简单)

时间:2017-12-30 15:57:40      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:important   cin   lis   div   nowrap   while   别人   字符   cab   

写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。

样例

给出 s = "abcd",t="dcab",返回 true.
给出 s = "ab", t = "ab", 返回 true.
给出 s = "ab", t = "ac", 返回 false.

这道题我第一次用java做的时候是通过每次遍历后将字符替换成空串,当然这种方法能实现,但是感觉不是很好,然后我上网找了别的方法,
发现别人的思路也不错:下面就是通过给两个串排序,然后对照每一位字符,如果不同就直接返回false
Python版:
class Solution:
    """
    @param s: The first string
    @param b: The second string
    @return true or false
    """
    def anagram(self, s, t):
        slist = list(s)
        tlist = list(t)
        if len(slist) != len(tlist):
            return False
        slist.sort()
        tlist.sort()
        i = 0
        while i < len(slist):
            if slist[i] != tlist[i]:
                return False
            i = i + 1 
        return True

  

还有就是另一种方法就是利用一个中间数组统计所有字符出现的次数,然后判断

 

 

两个字符串是变位词(简单)

标签:important   cin   lis   div   nowrap   while   别人   字符   cab   

原文地址:https://www.cnblogs.com/KanHin/p/8149847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!