字符串回文和数字回文判断
2015-09-01 19:24
239 查看
1.字符串回文判断
所谓字符串回文就是逆序后与原来字符串相同,如“abccba”就是回文字符串。
使用递归求解,递归结束情景:
字符串长度可能会奇数或偶数:
(1)如果字符串长度是奇数,字符串会剩下最中间那位字符,但其不影响回文。当检查到长度为1的时候即代表此字符串是回文
(2)如果字符串长度是偶数,当两端的字符串两两比较检查后不会剩下字符。即检查到长度为0的时候即代表此字符串是回文
如果检查到两端两个字符不相同。则说明此字符串不是回文,直接返回0,不需要继续检查
2.数字回文判断
类似,1221就是回文数字。
所谓字符串回文就是逆序后与原来字符串相同,如“abccba”就是回文字符串。
使用递归求解,递归结束情景:
字符串长度可能会奇数或偶数:
(1)如果字符串长度是奇数,字符串会剩下最中间那位字符,但其不影响回文。当检查到长度为1的时候即代表此字符串是回文
(2)如果字符串长度是偶数,当两端的字符串两两比较检查后不会剩下字符。即检查到长度为0的时候即代表此字符串是回文
如果检查到两端两个字符不相同。则说明此字符串不是回文,直接返回0,不需要继续检查
#include <stdio.h> #include <string.h> //判断字符串是否是回文 是返回1,否则返回0 int palindrome(int low,int high,char *str,int length) { if(length ==0 || length ==1) return 1; if(str[low] != str[high]) return 0; return palindrome(low+1,high-1,str,length-2); } int main(void) { char str[]="abccba"; int length = strlen(str); printf("%d\n",palindrome(0,length-1,str,length)); }
2.数字回文判断
类似,1221就是回文数字。
#include <stdio.h> int palindrome_num(int a) { int b = 0; int temp = a; while(a) { b = b*10+a%10; a=a/10; } if(temp==b) return 1; else return 0; } int main(void) { int a=1221; int ret = palindrome_num(a); printf("%d\n",ret); }
相关文章推荐
- NOIP2012 同余方程
- Mock学习
- 简易HTTP协议解析
- 数组总结
- expect用法
- SimpleFork php多进程并发框架
- 使用servlet实现登录
- .net 取当前代码的行号及类名称
- Spring Data Redis
- linux常用命令(17):whereis命令
- 第二篇 使用javascript控制字体
- python unittest源码解析一----测试用例是如何被执行的
- HDU 1113
- java学习笔记之——多线程(三)
- 利用js和Ajax实现的表单的检查和提交
- C语言基础知识之(十七):内存的分区:栈区,堆区,静态区(全局区),常量区,代码区
- FFMPEG SDK 开发介绍
- UVa 11572 - Unique Snowflakes (滑动窗口STL_map||set) 好题!!!
- 9-1课堂笔记
- 8-31课堂笔记