LintCode日记——两个字符串是变位词(C++,Python)
Posted 码头琴声_李昱辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode日记——两个字符串是变位词(C++,Python)相关的知识,希望对你有一定的参考价值。
题目描述:
写出一个函数 anagram(s, t)
判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。
解题思路:
C++:引入哈希的思维,这道题就迎刃而解了。
C++ Code:
class Solution {
public:
/**
* @param s: The first string
* @param b: The second string
* @return true or false
*/
bool anagram(string s, string t) {
// write your code here
int dic[58];
for (int i = 0; i < 58; i++)
dic[i] = 0;
for ( int i = 0; i < s.size(); i++ )
{
if (s[i] == ‘ ‘)
continue;
int index = s[i] - ‘A‘;
dic[index]++;
}
for ( int i = 0; i < t.size(); i++ )
{
if (t[i] == ‘ ‘)
continue;
int index = t[i] - ‘A‘;
dic[index]--;
}
for ( int i = 0; i < 58; i++ )
{
if (i==57 && dic[i]==0)
return true;
if (dic[i] == 0)
continue;
else
return false;
}
}
};
Python:利用Python的list()方法与sort()方法就可以成功地解决这道问题。
Python Code:
class Solution:
"""
@param s: The first string
@param b: The second string
@return true or false
"""
def anagram(self, s, t):
# write your code here
a = list(s)
b = list(t)
a.sort()
b.sort()
if a == b:
return True
else:
return False
以上是关于LintCode日记——两个字符串是变位词(C++,Python)的主要内容,如果未能解决你的问题,请参考以下文章