zoukankan      html  css  js  c++  java
  • LeetCode 05 最长回文子串

    思路:

      中心扩展法

    以每个下标做为中心, 向两遍扩散

    需要注意的是, 分为奇偶两种情况

    奇数时, 当前元素为中心

    偶数时,当前元素和下一个元素为中心

    最后保存最长长度和起始坐标即可, 注意空字符串的情况

    我曾经犯的错误对substr用法不对, 第一个参数是起始位置, 第二个参数是长度, 而不是终点位置

    string longestPalindrome(string s) {
    	int maxleng = 0;
    	int maxleft = 0;
    	string temp = "";
    	string longeststr = "";
    	for (int i = 0; i < s.size(); i++)
    	{
    		string ji = wangliangbianzhao(i, i, s);
    		string ou = wangliangbianzhao(i, i+1, s);
    		if (ou.size() > ji.size())
    		{
    			temp = ou;
    		}
    		else
    		{
    			temp = ji;
    		}
    		if (maxleng < temp.size())
    		{
    			longeststr = temp;
    			maxleng = temp.size();
    		}
    	}
    	return longeststr;
    	
    }
    string wangliangbianzhao(int left, int righ, string s)
    {
    	if (s == "")
    	{
    		return 0;
    	}
    	int L = left;
    	int R = righ;
    	int lenth = 0;
    	while (L >=0 && R < s.size())
    	{
    		if (s[L] == s[R])
    		{
    			L--;
    			R++;
    		}
    		else
    		{
    			break;
    		}
    	}
    	string res = s.substr(L+1,R-L-1);
    	return res;
    }
    

      

  • 相关阅读:
    2018-8-10-wpf-绑定-DataGridTextColumn-
    行踪隐藏 代理助手
    木马防杀 花指令 OllyDbg
    木马加壳
    elsave.exe日志清除
    黑客小工具
    WinRAR捆绑木马
    网页木马使用
    灰鸽子商业版用法
    黑洞远程连接
  • 原文地址:https://www.cnblogs.com/derek-dhw/p/10485429.html
Copyright © 2011-2022 走看看