Leetcode Note: Go - Ransom Note
Ransom Note - LeetCode
https://leetcode.com/problems/ransom-note/
- Go 言語で取り組んだメモ
所感
- magazine string に ransomNote string が含まれていれば true を return する
回答
シンプルに実装するならこれで十分?
func canConstruct(ransomNote string, magazine string) bool {
return strings.Contains(magazine, ransomNote)
}
=> wrong answer. input が “aab”, “baa” の場合は true が return されるべき
完全一致じゃなくて OK なので、文字単位での出現判定が必要だった
Go pretty simple code - LeetCode Discuss
https://leetcode.com/problems/ransom-note/discuss/1947575/Go-pretty-simple-code
func canConstruct(ransomNote string, magazine string) bool {
for _, v := range ransomNote {
if strings.Count(ransomNote, string(v)) > strings.Count(magazine, string(v)) {
return false
}
}
return true
}
- for ループで ransomNote を range で扱う
- 各文字 v が magazine に含まれる数より多ければ return false