python判断两个字符是否为变位词_两个字符串是变位词

本文提供了一种使用Python和C++来检查两个字符串是否为变位词的方法。在Python中,通过排序字符串后进行比较;在C++中,利用哈希表记录每个字符出现的次数进行判断。
摘要由CSDN通过智能技术生成

写出一个函数anagram(s,

t)去判断两个字符串是否是颠倒字母顺序构成的

样例

给出 s="abcd",t="dcab",返回 true

python:先排序后比较

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

s = "".join((lambda x:(x.sort(),x)[1])(list(s)))

t = "".join((lambda y:(y.sort(),y)[1])(list(t)))

if s == t:

return True

else:

return False

c++:用了哈希思想

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

if (s.length() != t.length()) {

return false;

}

int length = s.length();

int a[128]={0};

int b[128]={0};

for(int i = 0; i < length; i++) {

int a1 = s[i];

int b1 = t[i];

a[a1]++;

b[b1]++;

}

for(int i =0; i < 128; i++) {

if (a[i] != b[i])

return false;

}

return true;

}

};

原文:http://blog.csdn.net/susser43/article/details/45511681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值