把不考虑的情况都去除,构造新的需要考虑的字符串
class Solution { | |
public: | |
bool isPalindrome(string s) { | |
// Start typing your C/C++ solution below | |
// DO NOT write int main() function | |
string alphas; | |
for (size_t i = 0; i < s.size(); i++) { | |
if ('A' <= s[i] && s[i] <= 'Z') | |
alphas += s[i] - 'A' + 'a'; | |
else if ('a' <= s[i] && s[i] <= 'z') | |
alphas += s[i]; | |
else if ('0' <= s[i] && s[i] <= '9') | |
alphas += s[i]; | |
} | |
if (alphas.size() == 0) | |
return true; | |
size_t beg = 0, end = alphas.size() - 1; | |
while (beg < end) { | |
if (alphas[beg] == alphas[end]) { | |
beg += 1; | |
end -= 1; | |
} else { | |
return false; | |
} | |
} | |
return true; | |
} | |
}; |
1.注意运算符的优先级
优先级 |
运算符 |
名称或含义 |
使用形式 |
结合方向 |
说明 |
1 |
[] |
数组下标 |
数组名[常量表达式] |
左到右 | |
() |
圆括号 |
(表达式)/函数名(形参表) | |||
. |
成员选择(对象) |
对象.成员名 | |||
-> |
成员选择(指针) |
对象指针->成员名 | |||
2 |
- |
负号运算符 |
-表达式 |
右到左 |
单目运算符 |
(类型) |
强制类型转换 |
(数据类型)表达式 | |||
++ |
自增运算符 |
++变量名/变量名++ |
单目运算符 | ||
-- |
自减运算符 |
--变量名/变量名-- |
单目运算符 | ||
* |
取值运算符 |
*指针变量 |
单目运算符 | ||
& |
取地址运算符 |
&变量名 |
单目运算符 | ||
! |
逻辑非运算符 |
!表达式 |
单目运算符 | ||
~ |
按位取反运算符 |
~表达式 |
单目运算符 | ||
sizeof |
长度运算符 |
sizeof(表达式) | |||
3 |
/ |
除 |
表达式/表达式 |
左到右 |
双目运算符 |
* |
乘 |
表达式*表达式 |
双目运算符 | ||
% |
余数(取模) |
整型表达式/整型表达式 |
双目运算符 | ||
4 |
+ |
加 |
表达式+表达式 |
左到右 |
双目运算符 |
- |
减 |
表达式-表达式 |
双目运算符 | ||
5 |
<< |
左移 |
变量<<表达式 |
左到右 |
双目运算符 |
>> |
右移 |
变量>>表达式 |
双目运算符 | ||
6 |
> |
大于 |
表达式>表达式 |
左到右 |
双目运算符 |
>= |
大于等于 |
表达式>=表达式 |
双目运算符 | ||
< |
小于 |
表达式<表达式 |
双目运算符 | ||
<= |
小于等于 |
表达式<=表达式 |
双目运算符 | ||
7 |
== |
等于 |
表达式==表达式 |
左到右 |
双目运算符 |
!= |
不等于 |
表达式!= 表达式 |
双目运算符 | ||
8 |
& |
按位与 |
表达式&表达式 |
左到右 |
双目运算符 |
9 |
^ |
按位异或 |
表达式^表达式 |
左到右 |
双目运算符 |
10 |
| |
按位或 |
表达式|表达式 |
左到右 |
双目运算符 |
11 |
&& |
逻辑与 |
表达式&&表达式 |
左到右 |
双目运算符 |
12 |
|| |
逻辑或 |
表达式||表达式 |
左到右 |
双目运算符 |
13 |
?: |
条件运算符 |
表达式1? 表达式2: 表达式3 |
右到左 |
三目运算符 |
14 |
= |
赋值运算符 |
变量=表达式 |
右到左 | |
/= |
除后赋值 |
变量/=表达式 | |||
*= |
乘后赋值 |
变量*=表达式 | |||
%= |
取模后赋值 |
变量%=表达式 | |||
+= |
加后赋值 |
变量+=表达式 | |||
-= |
减后赋值 |
变量-=表达式 | |||
<<= |
左移后赋值 |
变量<<=表达式 | |||
>>= |
右移后赋值 |
变量>>=表达式 | |||
&= |
按位与后赋值 |
变量&=表达式 | |||
^= |
按位异或后赋值 |
变量^=表达式 | |||
|= |
按位或后赋值 |
变量|=表达式 | |||
15 |
, |
逗号运算符 |
表达式,表达式,… |
左到右 |
从左向右顺序运算 |
ASCII控制字符
二进制 | 十进制 | 十六进制 | 缩写 | 可以显示的表示法 | 名称/意义 |
---|---|---|---|---|---|
0000 0000 | 0 | 00 | NUL | ␀ | 空字符(Null) |
0000 0001 | 1 | 01 | SOH | ␁ | 标题开始 |
0000 0010 | 2 | 02 | STX | ␂ | 本文开始 |
0000 0011 | 3 | 03 | ETX | ␃ | 本文结束 |
0000 0100 | 4 | 04 | EOT | ␄ | 传输结束 |
0000 0101 | 5 | 05 | ENQ | ␅ | 请求 |
0000 0110 | 6 | 06 | ACK | ␆ | 确认回应 |
0000 0111 | 7 | 07 | BEL | ␇ | 响铃 |
0000 1000 | 8 | 08 | BS | ␈ | 退格 |
0000 1001 | 9 | 09 | HT | ␉ | 水平定位符号 |
0000 1010 | 10 | 0A | LF | ␊ | 换行键 |
0000 1011 | 11 | 0B | VT | ␋ | 垂直定位符号 |
0000 1100 | 12 | 0C | FF | ␌ | 换页键 |
0000 1101 | 13 | 0D | CR | ␍ | 归位键 |
0000 1110 | 14 | 0E | SO | ␎ | 取消变换(Shift out) |
0000 1111 | 15 | 0F | SI | ␏ | 启用变换(Shift in) |
0001 0000 | 16 | 10 | DLE | ␐ | 跳出数据通讯 |
0001 0001 | 17 | 11 | DC1 | ␑ | 设备控制一(XON 启用软件速度控制) |
0001 0010 | 18 | 12 | DC2 | ␒ | 设备控制二 |
0001 0011 | 19 | 13 | DC3 | ␓ | 设备控制三(XOFF 停用软件速度控制) |
0001 0100 | 20 | 14 | DC4 | ␔ | 设备控制四 |
0001 0101 | 21 | 15 | NAK | ␕ | 确认失败回应 |
0001 0110 | 22 | 16 | SYN | ␖ | 同步用暂停 |
0001 0111 | 23 | 17 | ETB | ␗ | 区块传输结束 |
0001 1000 | 24 | 18 | CAN | ␘ | 取消 |
0001 1001 | 25 | 19 | EM | ␙ | 连接介质中断 |
0001 1010 | 26 | 1A | SUB | ␚ | 替换 |
0001 1011 | 27 | 1B | ESC | ␛ | 跳出 |
0001 1100 | 28 | 1C | FS | ␜ | 文件分割符 |
0001 1101 | 29 | 1D | GS | ␝ | 组群分隔符 |
0001 1110 | 30 | 1E | RS | ␞ | 记录分隔符 |
0001 1111 | 31 | 1F | US | ␟ | 单元分隔符 |
0111 1111 | 127 | 7F | DEL | ␡ | 删除 |
ASCII可显示字符
|
|
|