字符串回文判断(palindrome)
来源:互联网 发布:java socket断点续传 编辑:程序博客网 时间:2024/06/05 11:47
描述:
前后对称的字符串可称为回文,比如 abcdedcba
用例:
"abc" //false"abba" //true"a" //单个字符串 true"" //空字符串 true
CODE:
long myStrlen(char* head){ char* tail = head; while (*tail) tail++; return tail - head;}// 回文英文单词:palindrome 这里不改了。。bool isHuiWen(char* head){ long len = myStrlen(head); char* tail = head; tail = head + len - 1; while ((tail - head) > 0) { if (*head != *tail) return false; tail--; head++; } return true;}//下面是两种,递归现实现回文判断,推荐第二种bool isHuiWen2(char* head, char* tail){ if (*head != *tail) return false; if (tail - head < 2) { return true; } else if (tail - head > 1) { return isHuiWen2(++head, --tail); } return false;}bool isHuiWen3(char* head, long n){ if (n <= 1) return true; if (head[0] != head[n - 1]) { return false; } if (n < 2) { return true; } else if (n > 1) { return isHuiWen3(head + 1, n - 2); } return false;}int main(){ char str[] = "bbabb"; char* ch = str; char* tail; if (myStrlen(ch) < 1) tail = &ch[0]; else tail = ch + myStrlen(ch) - 1; printf("%d\n", isHuiWen(ch)); printf("%d\n", isHuiWen2(ch, tail)); printf("%d\n", isHuiWen3(ch, myStrlen(ch)));}
一些总结:
- 指针或数组通过下标[]操作,*tail = ch[0],直接返回的是这个指针的值,加&才是对应地址
指针移动可通过 tail++; tail = ch + n; tail = &ch[1]; 三种方式都可以
字符串指针操作 程序不会检查是否越界,这个需要自己控制好
能用递归实现的问题特点:
1.通常处理一个集合,
2.不论这个集合的大小,都需要执行相同的操作,和判断
3.集合能逐步化简
代码在XCode下编写,自带的re-indecent不好用,推荐一个在XCode8.0上能用的排版插件XcodeClangFormat:https://github.com/mapbox/XcodeClangFormat
阅读全文
0 0
- 字符串回文判断(palindrome)
- 125. Valid Palindrome (回文字符串判断)
- Valid Palindrome 判断回文字符串
- (LeetCode)Valid Palindrome --- 判断回文字符串
- [LeetCode]判断回文数(Palindrome Number)
- 判断是否是回文(Valid Palindrome)
- 9. Palindrome Number (回文数判断)
- LeetCode:Palindrome Number(回文判断)
- palindrome(回文)判断方法
- Valid Palindrome 判断一个字符串是否是回文串
- leetcode 判断有效字符串是回文串Valid Palindrome
- POJ 3280 Cheapest Palindrome (回文字符串)
- leetcode 刷题:Valid Palindrome(回文字符串)
- 【字符串回文】Valid Palindrome
- Palindrome<回文>字符串问题
- poj3974 Palindrome [字符串回文]
- Valid Palindrome(回文字符串)
- LeetCode - Valid Palindrome (判断“回文”)
- 设计模式--适配器模式(三)
- session是什么?
- Django 改为用pymysql方法
- P3329 [ZJOI2011]最小割
- 设计模式--适配器模式(简要)(四)
- 字符串回文判断(palindrome)
- 相关控制
- Stax用法示例
- JSP<1.1>
- 函数默认参数
- MyBatis配置C3P0连接池
- Android双击返回键退出程序的实现方法
- 舞步学院PUA就是个坑,大家千万不要信(真事)
- 服务一带一路-逐浪CMS软件团队物联网研发成果显赫