Detect Capital - LeetCode
문제접근🤔
- 문자열 길이 체크
- 들어온 문자열들의 대문자 수 체크
- 3가지 케이스인지 확인(소문자만 있는지, 대문자가 한개만 있는지, 다 대문자인지)
놓쳤던 부분😅
- 대문자가 한개만 있는 경우를 판단할때 개수로만 판단할게 아니라 첫글자만 대문자인지를 확인해야함
ffffffffffF
의 경우 대문자 개수로만 판단하면 true
로 반환해버림
코드😁
14 MB
0 ms
class Solution {
func detectCapitalUse(_ word: String) -> Bool {
let wordLength = word.length
var count = 0
for letter in word {
if (letter >= "A" && letter <= "Z")
{
count += 1
}
}
switch count {
case 0:
return (true)
case 1:
if (word[word.startIndex] >= "A" && word[word.startIndex] <= "Z")
{
return (true)
}
return (false)
case wordLength:
return (true)
default:
return (false)
}
}
}
//다른 사람 풀이
class Solution {
func detectCapitalUse(_ word: String) -> Bool {
var count = 0
for ch in word where ch.isUppercase { count += 1 }
switch count {
case 0, word.count:
return true
case 1:
return word.first!.isUppercase
default:
return false
}
}
}