首页 > 试题广场 >

字母异位词的长度

[编程题]字母异位词的长度
  • 热度指数:1203 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现有两个仅由小写英文字母构成的字符串s, x,请判断它们是否为字母异位词,如果是的话,输出字母异位词的长度,不是的话,返回-1
注:如果每个字符出现的次数都相同,则称他们为字母异位词

数据范围:

示例1

输入

"aba","aa"

输出

-1

说明

第一个字符串与第二个字符串a出现的次数相同,而b出现的次数不同,不符合每个字符出现的次数都相同。故输出-1 
示例2

输入

"a","a"

输出

1

说明

第一个字符串与第二个字符串每个字符出现的次数都相同,故输出相同的长度为1 
package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @param c string字符串 
 * @return int整型
*/
func isCongruent( s string ,  c string ) int {
    if len(s)!=len(c){
        return -1
    }
    cnt:=map[byte]int{}
    for _,ch:=range []byte(s){
        cnt[ch]++
    }
    for _,ch:=range []byte(c){
        if _,ok:=cnt[ch];!ok{
            return -1
        }else{
            if cnt[ch]==1{
                delete(cnt,ch)
            }else{
                cnt[ch]--
            }
        }
    }
    if len(cnt)==0{
        return len(s)
    }
    return -1
}

发表于 2023-03-09 14:51:58 回复(0)