1.验证回文串:
链接: 题目链接

这道回文串的题见得也不少了,就是正序和倒序都一模一样的东西,在力扣中咱们不需要输入,只需要进行判断,这里char *s其实就已经是力扣给咱们的现成字符串,咱们只需要进行判断,长度就是strlen(s),指针和数组其实是大同小异的,或者直接while(s[i]),因为字符串最后一位是’\0’,这为while提供了终止条件,也就不需要知道长度了,代码如下:

bool isPalindrome(char * s){int i = 0,j = 0;while(s[i]){//首先对字符串进行一个更新,排除大小写因素与非字母与数字因素,用ascii编码if(s[i] >= 48 && s[i] <= 57)//当为字符数字时s[j++] = s[i];else if(s[i] >= 65 && s[i] <= 90){//当为大写字母时s[i] += 32;//转小写s[j++]= s[i];}else if(s[i] >= 97 && s[i] <= 122)//当为小写字母时s[j++] = s[i];i++;}int left = 0,right = j - 1;//利用快排思想,分别从左和右进行判断while(left < right){if(s[left] != s[right])return false;left++;right--;}return true;
}

2.子串的最大出现次数:
链接: 题目链接

这道题用python好写,思路清晰,也有对应的函数,代码如下:

class Solution:def maxFreq(self, s: str, maxLetters: int, minSize: int, maxSize: int) -> int:n = len(s)occ = collections.defaultdict(int) #构建字典并返回int型数据ans = 0for i in range(n):exist = set() #创建一个集合,目的是利用集合性质去重cur = ""for j in range(i, min(n, i + maxSize)):exist.add(s[j])if len(exist) > maxLetters:#当集合长度大于规定数量则终止breakcur += s[j]#存储最大子串if j - i + 1 >= minSize:occ[cur] += 1 #满足条件次数加1ans = max(ans, occ[cur]) #选出最大子串return ans

3.回文字串:
链接: 题目链接

这道题在于对子串回文的判断,当子串长度为一时,就是回文子串,当为二时,相等为回文子串,当长度大于三时,不断迭代去掉首尾后子串满足前两个条件时为回文子串,代码如下:

class Solution:def countSubstrings(self, s: str) -> int:# dp[i][j]代表子串[i, j] n = len(s)dp = [[False] * n for _ in range(n)] #生成二维矩阵count = 0# 枚举所有可能 因为代表子串 所以 i <= jfor j in range(n):for i in range(0, j + 1):# 子串长度length = j - i + 1 #举个例子dp[2][3],长度为2,3-2+1=2,所以是j-i+1# 只有一个字符 直接就是一个回文串if length == 1:dp[i][j] = True #定为True,作为长度大于3的子串判断标准count += 1# 两个字符 只有相等才是回文串if length == 2 and s[i] == s[j]: #同上dp[i][j] = Truecount += 1# 超过两个字符 首位相同 且除去首尾的子串是回文串 才是回文串if length > 2 and s[i] == s[j] and dp[i+1][j-1] is True:dp[i][j] = Truecount += 1return count

4.最长回文串:
链接: 题目链接

上题想法需要直接一点,要知道回文串,就要先知道它们每个字符出现的次数,奇数考虑对称轴,偶数放中间,这道题是计算最大回文串的长度,那其实就很暴力了,可能一些小伙伴以为这题需要分情况,但其实只需举例子就可以得出答案的推导公式!!!
具体解释如下:

int longestPalindrome(char * s){int c[128] = {0};//ascii码字符最大数int len = strlen(s);int ret = 0;//构造以字母为下标的哈希计数表,统计字符串中每个字母出现的次数 for(int i=0; i<len; ++i){c[s[i]]++; }for(int i=0; i<128; i++){ret += c[i] - c[i] % 2;   //需要去找规律,奇数情况下减一,偶数情况下直接加,可以找(abc,abcba,bbcc)的规律,你会发现满足这个数学公式. }//如果不是相等长度,例如abca,a出现了两次,放在对称轴两侧,那么中间随便放一个就满足回文串了;如果都只出现了一次那上式ret为零,随便一个就是回文串,则长度加一. if(ret < len)ret += 1;return ret;
}

ML-czy的小组任务3相关推荐

  1. 一文告诉你,NIPS 2017有多火爆 | 附PPT、视频、代码大总结

    原文来源:Medium.GitHub 作者:TarasSereda 「雷克世界」编译:嗯~阿童木呀.KABUDA 今年的NIPS是一场盛大的.极富教育意义和探索精神的.魅力十足且人数众多的会议. 第一 ...

  2. 90 后美女学霸:出身清华姚班,成斯坦福 AI 实验室负责人高徒!

    出品 | AI 科技大本营(ID: rgznai100) 今天给大家介绍一位斯坦福博士毕业生的传奇人生,她的一篇名为"Neural Reading Comprehension and Bey ...

  3. 90后美女学霸:出身清华姚班,成斯坦福AI实验室负责人高徒

    https://www.toutiao.com/a6663025237497479692/ 出品 | AI科技大本营(ID: rgznai100) 今天给大家介绍一位斯坦福博士毕业生的传奇人生. 她的 ...

  4. ml不是内部或外部命令_美国飞机制造商波音公司采用VR技术训练宇航员 ; Snap Lens Studio推出支持自定义ML驱动的Snapchat镜头...

    看日报是个好习惯!  Valve宣布为Steam开发者推出OpenXR预览版本,支持跨平台VR/AR内容开发  Valve在为Steam游戏开发人员迎接OpenXR面世的准备方面迈出了重要的一步,开发 ...

  5. 一天狂揽2000+星,微软面向初学者ML课程来了,完全免费

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 适合所有初学者的经典机器学习课 ...

  6. 为ML开发、部署提供靠谱的系统工程方法,NASA、牛津、微软等多家机构提出MLTRL框架

    MLTRL 框架具备鲁棒性好.可靠性强等优点,并定义了一种通用语言,支持不同团队和组织的人员协同工作. 选自arXiv,作者:Alexander Lavin等,机器之心编译,编辑:陈萍 使用现代工具可 ...

  7. 不再受限于数据集和硬件,下一代 ML 软件如何构建?

    在不久以前,数据科学团队需要一些东西来有效地利用深度学习: 一种新颖的模型结构,这个结构可能是内部设计的 访问大型且.专有的数据集 大型模型训练的硬件或资金 这些条件将深度局限于满足它们的少数项目中, ...

  8. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(三)

    ML之XGBoost:XGBoost参数调优的优秀外文翻译-<XGBoost中的参数调优完整指南(带python中的代码)>(三) 目录 3. 参数微调案例/Parameter Tunin ...

  9. 深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  10. ai/ml_您本周应阅读的有趣的AI / ML文章(8月9日)

    ai/ml 分析与意见 (ANALYSIS AND OPINION) I want to start my weekly compilation list of AI/ML articles with ...

最新文章

  1. 是否患有新冠肺炎? 你咳嗽一声
  2. hadoop的实现-序
  3. UA SIE545 优化理论基础1 例题3 凸多面体的表示与线性规划
  4. 操作系统之存储管理——FIFO算法和LRU算法
  5. VTK:绘图之PlotLine3D
  6. 120. Triangle
  7. java约瑟夫环pta上_cdoj525-猴子选大王 (约瑟夫环)
  8. sqlite3 出错
  9. 一加9硬件规格全曝光:120Hz流体屏+双重快充
  10. 《统计学习方法》代码全解析——第四部分朴素贝叶斯
  11. pdo 连接操作数据库
  12. VS2008创建win32动态链接库图文流程
  13. python 删除变量_Cathy的python学习笔记(二)——变量及字符串
  14. 《重构 改善既有代码的设计》笔记
  15. ubb转换html,UBB代码转换成HTML代码
  16. 项目ITP(一) 二维码
  17. 搜索引擎/网络蜘蛛程序代码
  18. Linux-逻辑卷LVM
  19. 04 Qt音视频多媒体播放器开发,Qt6.2.3 multimedia
  20. loraserver 源码解析 (六) lora-app-server

热门文章

  1. linux下载tkinter模块,Linux升级Python提示Tkinter模块找不到解决
  2. 项目经理人才培养专题︱优秀项目经理能力建设(一)
  3. 微信小程序图片上传到java后台
  4. 如何像伟大的企业家一样写作
  5. 3D导航栏翻转(css)
  6. excel拼接换行符:char(10)
  7. 甲骨文服务器(Oracle Cloud)开启root用户登录
  8. 手机微信打不开连接到服务器错误代码,微信打不开文件是怎么回事(微信文件错误代码90018)...
  9. krpano学习——xml代码
  10. Geometric deep learning: going beyond Euclidean data译文