zoukankan      html  css  js  c++  java
  • 214. Shortest Palindrome

     1 class Solution {
     2     int missingLen;// 咱们的目的是要补全回文; 举例 asdsafgh,其中 asdsa是回文,右边多出了fgh,我们需要把fgh反转填到左边就行了;fgh被称为missingLen=3;
    3 4 void validate(String s, int i,int j) 5 { 6 while(i>=0&&j<s.length()&&s.charAt(i)==s.charAt(j)) 7 { 8 --i; 9 ++j; 10 } 11 if(-1==i&&s.length()-j<missingLen) 12 { 13 missingLen=s.length()-j; 14 } 15 } 16 17 public String shortestPalindrome(String s) { 18 missingLen=s.length()-1; 19 for(int i=0;i<=s.length()/2;++i) 20 { 21 validate(s,i,i); 22 validate(s,i,i+1); 23 } 24 if(missingLen>0) 25 { 26 return new StringBuilder(s.substring(s.length()-missingLen)).reverse().append(s).toString(); 27 } 28 return s; 29 } 30 }

    这题目标的是hard难度,如果你做过回文题目, 这题算不上hard难度我想.

    不需要什么搜索,dp,递归. 普通解法就可以accepted.

  • 相关阅读:
    16.什么是面向对象编程?
    15.运动
    14.this指向和ES6常用内容
    13.正则表达式
    12.事件模型
    11.event事件对象
    10.BOM
    9.DOM
    拓扑排序学习(复习)笔记
    [Luogu] P1987 摇钱树
  • 原文地址:https://www.cnblogs.com/lychnis/p/11110289.html
Copyright © 2011-2022 走看看