Daily LeetCoding Challenge April, Day 2
문제: Palindrome 가능 여부 확인
이때 최대 1개의 글자를 삭제 가능하다.
아이디어: Brute Force
문자를 제거할 수 있다는 것은 앞에서 비교할 때는 index+1, 뒤에서 비교할때는 index-1 하는 것이므로
두가지의 가능성이 있다. 따라서 둘 중에 하나가 true라면 palindrome인 것이다.
완성
submission: 44ms / 9.1MB
bool checkValid(char *s, int start, int end)
{
while (start < end)
{
if (s[start] != s[end])
return false;
start++;
end--;
}
return true;
}
bool validPalindrome(char *s){
int start = 0;
int end = 0;
while (s[end] != 0)
end++;
end--;
while (start < end)
{
if (s[start] == s[end])
{
start++;
end--;
}
else
{
return checkValid(s, start + 1, end) || checkValid(s, start, end - 1);
}
}
return true;
}
'ALGORITHM > c&c++ leetcode' 카테고리의 다른 글
[C/LeetCode] Container With Most Water (0) | 2022.04.05 |
---|---|
[C/LeetCode] Swapping Nodes in a Linked List (0) | 2022.04.04 |
[C/LeetCode] Search a 2D Matrix (0) | 2022.03.30 |
[C/LeetCode] Search in Rotated Sorted Array II (0) | 2022.03.28 |
[swift/LeetCode] Binary Search (0) | 2022.03.26 |