4030. Check ASCII Palindromic
Description
You are given a string s consisting of lowercase English letters.
Construct a binary string by replacing each character in s with the 8-bit binary representation of its ASCII value, including leading zeros, while preserving the original order of the characters.
Return true if the resulting binary string is a palindrome. Otherwise, return false.
Example 1:
Input: s = "ff"
Output: true
Explanation:
- The ASCII value of
fis 102, whose 8-bit binary representation is01100110. - Thus, the binary string is
0110011001100110. - Since this binary string is a palindrome, the output is
true.
Example 2:
Input: s = "leet"
Output: false
Explanation:
- The ASCII values of
l,e,e, andtare 108, 101, 101, and 116, respectively. - Their 8-bit binary representations are
01101100,01100101,01100101, and01110100. - Thus, the binary string is
01101100011001010110010101110100. - Since this binary string is not a palindrome, the output is
false.
Constraints:
1 <= s.length <= 100sconsists of lowercase English letters.
Solutions
Solution 1: Simulation
Thinking
Each character expands to a fixed \(8\)-bit string, including leading zeros, and we test whether the concatenation is a palindrome. \(n\) is small enough that we need not rewrite the test in terms of character pairs.
Build \(t\) in order and compare it with its reverse.
Following the problem statement, we replace each character of \(s\) with the \(8\)-bit binary representation of its ASCII value (including leading zeros), concatenate them in order to obtain a binary string \(t\), and then check whether \(t\) is a palindrome.
The time complexity is \(O(n)\) and the space complexity is \(O(n)\), where \(n\) is the length of \(s\).
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 | |