C和C++程序员面试秘笈:18---判断字符串是否为回文、计算含有中文的字符串长度、找出01字符串中0和1连续出现的最大次数
一、判断字符串是否有回文
- 例如单词"level"就是回文
编码实现
- 我们可以从一个字符串的两端进行遍历比较。例如对于"level"字符串:
- 1.计算需要比较的次数。由于"level"长度为5,是奇数,因此比较两次
- 2.第一次比较:看"level"的第一个字符与最后一个字符是否相等,若相等则济宁第二次比较
- 3.第二次比较:看"level"的第二个字符与倒数第二个字符是否相等,如果相等,则为回文
- 如果上面的比较过程有一个不相等,则字符串就不是回文
- 代码如下:
二、计算含有中文的字符串长度
- 此处定义汉字编码为双字节:首字节<0,尾字节在0~63以外
编码实现