zoukankan      html  css  js  c++  java
  • 求最大回文前缀的长度问题

    题目描述:
    求一个字符串的最大回文前缀长度。回文是指正反方向读起来都是一样的字符串,比如“abcdcba”就是一个回文。
    输入:
    多行字符串。
    输出:
    最大回文前缀的长度。

    样例输入:
    abc
    abcd
    abcdc
    abcdcb
    abcdcba

    样例输出:
    1
    1
    1
    1
    7

    注意本题是求回文前缀的长度,需要从字符串的首部开始,字符串中间到尾部的部分形成的回文不算。

    一种实现代码如下(Java版):

     1 import java.util.Scanner;
     2 
     3 public class Main {
     4     public static void main(String[] args) {
     5         Scanner in = new Scanner(System.in);
     6         while (in.hasNext()) {
     7            String str = in.nextLine();
     8            System.out.println(getResult(str));
     9         }
    10         in.close();
    11     }
    12     
    13     public static int getResult(String str){
    14         int result = 0;
    15         int i = 0; //第一个指针从字符串首部向后移动
    16         int j = str.length() -1; //第二个指针从字符串尾部向前移动
    17         int hlen = j; //记录回文的长度-1
    18         while (i <= j) {
    19             if (str.charAt(i) == str.charAt(j)) {
    20                 ++i;
    21                 --j;
    22             }else {
    23                 i = 0;
    24                 --j;
    25                 hlen = j;
    26             }
    27         }
    28         result = hlen+1;  //最大回文前缀的长度
    29         return result;
    30     }
    31 }
  • 相关阅读:
    FIS3常用配置
    PC端模拟移动端访问 字体大小限制
    table布局 防止table变形 td固定宽度
    fis3 scss 版本报错
    移动端布局方案 网易
    提示浏览器版本低
    JS Math.round()方法原理
    margin 负边距应用
    box-shadow IE8兼容处理
    border-radius IE8兼容处理
  • 原文地址:https://www.cnblogs.com/JiaJoa/p/7801327.html
Copyright © 2011-2022 走看看