判断变位词?

一、什么是变位词?

一个单词的字母顺序经过调整后,变成另外一个单词。比如 “earth” & “heart”。

二、JavaScript实现

在这里插入图片描述

// Hash Table
	function fun(aWord, bWord){
	    if(aWord.length != bWord.length){
	        return false
	    };
	    var res = {};
	    for(let i=0; i < aWord.length; i++){
	        res[aWord[i]] ? res[aWord[i]]++ : (res[aWord[i]]=1);
	        res[bWord[i]] ? res[bWord[i]]-- : (res[bWord[i]]=-1);
	    }
	    return Object.values(res).every(i => i==0);
	}
// sorted
	function fun(aWord, bWord){
		if(aWord.length != bWord.length){
		        return false
		    };
        let a = aWord.split('').sort();
        let b = bWord.split('').sort();
	    let count = 0;
	    while(count < aWord.length){
	        if(a[count] != b[count]){
	            return false
	        }
	        count += 1;
	    }
	    return true
	}

三、Python实现

# Hash Table
def bar(res, Word, i, count):
    try:
        res[Word[i]] += count
    except:
        res[Word[i]] = count
    return res
def fun(aWord, bWord):
    if(len(aWord) != len(bWord)):
        return False
    res = {} 
    for i in range(len(aWord)):
        res = bar(res, aWord, i, 1)
        res = bar(res, bWord, i, -1)
    for i in res:
        if(res[i] != 0):
            return False
    return True
# sorted
def fun(aWord, bWord):
    return sorted(aWord) == sorted(bWord) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值