写出一个函数 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
还有就是另一种方法就是利用一个中间数组统计所有字符出现的次数,然后判断