给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
错误解答
func canConstruct(ransomNote string, magazine string) bool {
res:=false
for index :=range ransomNote{
for i:=range magazine{
if ransomNote[index] == magazine[i] {
magazine=magazine[0:i]+magazine[i+1:]
res=true
break
}
res=false
}
if res==false{
return false
}
}
return res
}
查看官方解题思路
func canConstruct(ransomNote string, magazine string) bool {
if len(ransomNote) > len(magazine){
return false
}
a:=[26]int{}
for _,alp2:=range magazine{
a[alp2-'a']++
}
for _,alp1:=range ransomNote{
if a[alp1-'a']==0{
return false
}
a[alp1-'a']--
}
return true
}
来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。