Go语言面试题:字符串是否一致

333 阅读1分钟

问题描述

判断两个给定的字符串排序后是否⼀致。

给定两个字符串,请编写程序,确定其中⼀个字符串的字符重新排列后,能否变成另⼀个字符串。

这⾥规定大小写为不同字符

给定⼀个string s1和⼀个string s2,请返回⼀个bool,代表两串是否重新排列后可相同。

保证两串的⻓度都⼩于等于5000。

解题思路

判断s1中每个字符的个数与s2中的相同即可。

完整代码

func judge(s1, s2 string) bool {
	r1 := []rune(s1)
	r2 := []rune(s2)
	n1 := len(r1)
	n2 := len(r2)
	if n1 > 5000 || n2 > 5000 || n1 != n2 {
		return false
	}
	for _, r := range r1 {
		if strings.Count(s1, string(r)) != strings.Count(s2, string(r)) {
			return false
		}
	}
	return true
}