** C语言判断是否为回文字符串**
问题描述 | 给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。 |
---|---|
回文含义 | 字符串回文指该字符串正序与其逆序逐字符一致 |
数据范围 | 0<n≤1000000 |
输入样例 | absba |
输出样例 | true |
算法思想
根据回文字符的特点,可以先找到回文字符的1/2处,判断前一半字符的正序与后一半字符的逆序是否相等(第i个字符和第length-1-i个字符是否相等),若相等,则为回文字符串,否则不是。
代码示例
```bool judge(char* str ) {
int length=strlen(str);
bool flag = 1;
for( int i = 0;i < length / 2 ; i++){
if(str[i]!=str[length-1-i]){
flag = 0;
break;
}
}
return flag;
}