C和C++程序员面试秘笈:18---判断字符串是否为回文、计算含有中文的字符串长度、找出01字符串中0和1连续出现的最大次数

一、判断字符串是否有回文

  • 例如单词"level"就是回文

编码实现

  • 我们可以从一个字符串的两端进行遍历比较。例如对于"level"字符串:
    • 1.计算需要比较的次数。由于"level"长度为5,是奇数,因此比较两次
    • 2.第一次比较:看"level"的第一个字符与最后一个字符是否相等,若相等则济宁第二次比较
    • 3.第二次比较:看"level"的第二个字符与倒数第二个字符是否相等,如果相等,则为回文
    • 如果上面的比较过程有一个不相等,则字符串就不是回文
  • 代码如下:

C和C++程序员面试秘笈:18---判断字符串是否为回文、计算含有中文的字符串长度、找出01字符串中0和1连续出现的最大次数

二、计算含有中文的字符串长度

  • 此处定义汉字编码为双字节:首字节<0,尾字节在0~63以外

编码实现

C和C++程序员面试秘笈:18---判断字符串是否为回文、计算含有中文的字符串长度、找出01字符串中0和1连续出现的最大次数

三、找出01字符串中0和1连续出现的最大次数

C和C++程序员面试秘笈:18---判断字符串是否为回文、计算含有中文的字符串长度、找出01字符串中0和1连续出现的最大次数