题目:

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example:

  1. Input: "babad"
  2.  
  3. Output: "bab"
  4.  
  5. Note: "aba" is also a valid answer.

Example:

  1. Input: "cbbd"
  2.  
  3. Output: "bb"

从对题目的理解来看,其实就是求最长的回文子串。

知识:首先当然是字符串string类的知识,在3题的题解中已经总结过,

那么这次就只用补充一个求子串的函数,摘抄一个博主写的区别:

substr有2种用法:
假设:string s = "0123456789";

string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"

string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"

下面就来说说我的思路,这个题我的方法就是从中间开始试,不断的向两边扩展,

中间有可能是一个字符不,也有可能是两个字符,如果这个字符相等就不断的往后去找。

当然中间遇到了一些bug,比如maxLen要设置为1,这样因为我的是只有一个字符进不去循环的问题就解决了。

当然,看到网上一些比较好的代码i是从1开始循环就不会牵扯这么多的问题。

这是修改以后的代码

  1. class Solution {
  2. public:
  3. string longestPalindrome(string s) {
  4. int maxLen=;
  5. int start=;
  6. for(int i=;i<s.length()-;i++)
  7. {
  8. int low=i;
  9. int high=i+;
  10. while(low>=&&high<=s.length()-&&s[low]==s[high])
  11. {
  12. low--;
  13. high++;
  14. }
  15. if(maxLen<(high-low-))
  16. {
  17. maxLen=high-low-;
  18. start=low+;
  19. }
  20. low=i;
  21. high=i+;
  22. while(low>=&&high<=s.length()-&&s[low]==s[high])
  23. {
  24. low--;
  25. high++;
  26. }
  27. if(maxLen<(high-low-))
  28. {
  29. maxLen=high-low-;
  30. start=low+;
  31. }
  32. }
  33. return s.substr(start,maxLen);
  34. }
  35. };
  1.  

leetcode题解 5. Longest Palindromic Substring的更多相关文章

  1. LeetCode题解之Longest Palindromic Substring

    1.题目描述 2.问题分析 计算每个字符所组成的字符串的回文子串. 3.代码 string longestPalindrome(string s) { ; ; bool is_odd = false ...

  2. 【LeetCode】5. Longest Palindromic Substring 最长回文子串

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:最长回文子串,题解,leetcode, 力扣,python ...

  3. 【一天一道LeetCode】#5 Longest Palindromic Substring

    一天一道LeetCode系列 (一)题目 Given a string S, find the longest palindromic substring in S. You may assume t ...

  4. 【LeetCode OJ】Longest Palindromic Substring

    题目链接:https://leetcode.com/problems/longest-palindromic-substring/ 题目:Given a string S, find the long ...

  5. 【LeetCode】005. Longest Palindromic Substring

    Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...

  6. 【LeetCode】5. Longest Palindromic Substring 最大回文子串

    题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...

  7. 【leetcode】5. Longest Palindromic Substring

    题目描述: Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...

  8. 《LeetBook》leetcode题解(5):Longest Palindromic [M]——回文串判断

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  9. LeetCode OJ:Longest Palindromic Substring(最长的回文字串)

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

随机推荐

  1. QT使用MSVC编译器输出中文乱码问题解决方法

    方法一:使用QStringLiteral()宏对每个中文字符串封装,此方法的缺点是不能在使用tr()函数用于字符串翻译: 方法二:强制MSVC编译器采用UTF-8编码生成可执行文件,需要在出现中文字符 ...

  2. Java继承和组合

    为了保证父类有良好的封装性,不会被子类随意修改,设计父类通常应该遵循以下规则: 1.尽量隐藏父类的内部数据,尽量把父类的所有成员变量设置为 private 访问类型,不要让子类直接访问父类的成员变量: ...

  3. Html lable 标签

    Html lable 标签 <html> <body> <!-- label 关联光标标签,点击文字使得关联的标签获取光标.for="username" ...

  4. Docker Swarm 介绍 or 工作原理

    Docker Swarm 介绍 Swarm 简介 Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swar ...

  5. linux --- 8. mysql数据库,redis 数据库

    一. mysql 数据库 1.安装方式 ①yum安装 ②源代码编译安装 ③rpm包安装 yum安装的前提条件,是准备好yum源,可以选择163源,清华源,阿里云源,等等等 .安装mariadb的yum ...

  6. topcoder srm 580 div1

    problem1 link 最优选择一定是在$2n$个端点中选出两个. problem2 link 分开考虑每个区间.设所有区间的左端点的最大值为$lc$,所有区间的右端点的最小值为$rc$.对于某个 ...

  7. FJUT3701 这也是一道数论题(线段树)题解

    Problem Description 好久没出数据结构题,现在赶紧来做道数据结构题热热身 小q现在要去银行,他有个很厉害的bug能看到前面排队的人.假如当前有人正在办理业务,那么肯定要等待前一个人完 ...

  8. Python入门 模块

    module 模块 atestmodule.py #!/usr/bin/env python3 # -*- coding: utf-8 -*- 'a test module' def addFunc( ...

  9. ORM模型

    一.创建及映射(orm_intro_demo文件) 在项目新建App下的models.py文件下新建ORM模型: from django.db import models #如果要将一个普通的类变成一 ...

  10. 将npm的注册表源设置为国内的镜像

    1.国内用户,建议将npm的注册表源设置为国内的镜像,可以大幅提升安装速度 2.国内优秀npm镜像推荐及使用:http://riny.net/2014/cnpm/ 淘宝npm镜像 ·搜索地址:http ...