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

Posted kanhin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个字符串是变位词(简单)相关的知识,希望对你有一定的参考价值。

写出一个函数 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

  

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

 

 

以上是关于两个字符串是变位词(简单)的主要内容,如果未能解决你的问题,请参考以下文章

Java每日一题——>剑指 Offer II 032. 有效的变位词

Java每日一题——>剑指 Offer II 032. 有效的变位词

Java每日一题——>剑指 Offer II 032. 有效的变位词

LintCode 158. 两个字符串是变位词

“变位词”判断问题

LintCode日记——两个字符串是变位词(C++,Python)