4030. 判断 ASCII 值回文
题目描述
给你一个由小写英文字母组成的字符串 s。
将 s 中的每个字符替换为其 ASCII 值对应的 8 位二进制表示,包括前导零,并保持字符原有顺序,从而构造一个二进制字符串。
如果得到的二进制字符串是一个 回文串 ,则返回 true;否则返回 false。
二进制字符串 是指仅由字符 '0' 和 '1' 组成的字符串。
回文串 是指正着读和反着读都相同的字符串。
示例 1:
输入: s = "ff"
输出: true
解释:
- 字符
f的 ASCII 值为 102,其 8 位二进制表示为01100110。 - 因此,得到的二进制字符串为
0110011001100110。 - 由于该二进制字符串是一个 回文串 ,因此输出为
true。
示例 2:
输入: s = "leet"
输出: false
解释:
- 字符
l、e、e和t的 ASCII 值分别为 108、101、101 和 116 。 - 它们对应的 8 位二进制表示分别为
01101100、01100101、01100101和01110100。 - 因此,得到的二进制字符串为
01101100011001010110010101110100。 - 由于该二进制字符串不是一个 回文串 ,因此输出为
false。
提示:
1 <= s.length <= 100s仅由小写英文字母组成。
解法
方法一:模拟
我们按照题意,将字符串 \(s\) 中每个字符替换为其 ASCII 值的 \(8\) 位二进制表示(包含前导零),按原顺序拼接得到二进制字符串 \(t\),然后判断 \(t\) 是否为回文串即可。
时间复杂度 \(O(n)\),空间复杂度 \(O(n)\)。其中 \(n\) 是字符串 \(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 | |