Welcome to Subscribe On Youtube
2330. Valid Palindrome IV
Description
You are given a 0-indexed string s
consisting of only lowercase English letters. In one operation, you can change any character of s
to any other character.
Return true
if you can make s
a palindrome after performing exactly one or two operations, or return false
otherwise.
Example 1:
Input: s = "abcdba" Output: true Explanation: One way to make s a palindrome using 1 operation is: - Change s[2] to 'd'. Now, s = "abddba". One operation could be performed to make s a palindrome so return true.
Example 2:
Input: s = "aa" Output: true Explanation: One way to make s a palindrome using 2 operations is: - Change s[0] to 'b'. Now, s = "ba". - Change s[1] to 'b'. Now, s = "bb". Two operations could be performed to make s a palindrome so return true.
Example 3:
Input: s = "abcdef" Output: false Explanation: It is not possible to make s a palindrome using one or two operations so return false.
Constraints:
1 <= s.length <= 105
s
consists only of lowercase English letters.
Solutions
-
class Solution { public boolean makePalindrome(String s) { int cnt = 0; int i = 0, j = s.length() - 1; for (; i < j; ++i, --j) { if (s.charAt(i) != s.charAt(j)) { ++cnt; } } return cnt <= 2; } }
-
class Solution { public: bool makePalindrome(string s) { int cnt = 0; int i = 0, j = s.size() - 1; for (; i < j; ++i, --j) { cnt += s[i] != s[j]; } return cnt <= 2; } };
-
class Solution: def makePalindrome(self, s: str) -> bool: i, j = 0, len(s) - 1 cnt = 0 while i < j: cnt += s[i] != s[j] i, j = i + 1, j - 1 return cnt <= 2
-
func makePalindrome(s string) bool { cnt := 0 i, j := 0, len(s)-1 for ; i < j; i, j = i+1, j-1 { if s[i] != s[j] { cnt++ } } return cnt <= 2 }
-
function makePalindrome(s: string): boolean { let cnt = 0; let i = 0; let j = s.length - 1; for (; i < j; ++i, --j) { if (s[i] != s[j]) { ++cnt; } } return cnt <= 2; }