《零基础Go语言算法实战》
【题目 1-16】字符串的遍历与比较
给出两个字符串,请编写程序以确定能否将其中一个字符串重新排列后变成另一个字符串,
并规定大小写是不同的字符,空格也作为字符考虑。保证两个字符串的长度小于或等于 5000。
【解答】
① 思路。
首先要保证字符串长度小于 5000。之后只需一次循环遍历 str1 中的字符在 str2 中是否都
存在即可。
② Go 语言实现。
func isRegroup(str1, str2 string) bool {
strLen1 := len([]rune(str1))
strLen2 := len([]rune(str2))
if strLen1 > 5000 || strLen2 > 5000 || strLen1 != strLen2 {
return false
}
for _, v := range str1 {
if strings.Count(str1, string(v)) != strings.Count(str2, string(v)) {
return false
}
}
return true
}