
LeetCode:647. Palindromic Substrings回文子串(C语言)
发布日期:2021-05-08 18:43:38
浏览次数:25
分类:精选文章
本文共 1042 字,大约阅读时间需要 3 分钟。
题目描述:
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。
示例 1:
输入: “abc”
输出: 3 解释: 三个回文子串: “a”, “b”, “c”.示例 2:
输入: “aaa”
输出: 6 说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.注意:
输入的字符串长度不会超过1000。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindromic-substrings 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 解答:int isPalindrome(char *buf, int left, int right){ while(left < right){ if(buf[left] == buf[right]){ left++; right--; } else{ return false; } } return true;}int countSubstrings(char * s){ int len = strlen(s); int i,j; int count = 0; for(i = 0;i < len;i++){ for(j = 0;i + j < len;j++){ if(isPalindrome(s, i, i + j)){ count++; } } } return count;}
运行结果:

Notes:
类似暴力法,但是第二层指针起点从字符串起始位置开始,第二层指针所指位置和第一层指针所指位置的长度的和要小于字符串总长度,在小于总长度的条件下判断第一层指针位置上的元素(right)与第二层指针位置上的元素(left)是否相等,若相等,left自减right自加,若最后left与right相等则表明是回文字符子串,返回true,否则不是,返回false。如此循环,直到遍历结束。发表评论
最新留言
很好
[***.229.124.182]2025年04月18日 20时32分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
采坑 - 字符串的 "" 与 pd.isnull()
2021-05-09
无序列表 - 链表
2021-05-09
Matplotlib绘制漫威英雄战力图,带你飞起来!
2021-05-09
机器学习是什么
2021-05-09
《小王子》里一些后知后觉的道理
2021-05-09
《你当像鸟飞往你的山》总结
2021-05-09
《我是猫》总结
2021-05-09
《抗糖化书》总结
2021-05-09
apache虚拟主机配置
2021-05-09
PHP官方网站及PHP手册
2021-05-09
mcrypt加密以及解密过程
2021-05-09
go等待N个线程完成操作总结
2021-05-09
ReactJs入门教程-精华版
2021-05-09
Python 之网络式编程
2021-05-09
MySql5.5安装步骤及MySql_Front视图配置
2021-05-09
Java内存模型(JMM)
2021-05-09
AQS相关
2021-05-09
WCF学习之旅—第三个示例之一(二十七)
2021-05-09