zoukankan      html  css  js  c++  java
  • java----构造回文字符串java(动态规划)【手写演算残图】

    问题描述


    草稿解决过程

    (字丑别喷)


    代码实现


    import java.util.Scanner;
    /**
     * Created by Admin on 2017/3/26.
     */
    public class test02 {
     public static int HuiWenNum(String str){
         String rev=new StringBuffer(str).reverse().toString();
         int len=str.length();
         int[][] S=new int[len+1][len+1];
         for (int i=0;i<len+1;i++)
             S[i][0]=S[0][i]=0;
         for(int i=1;i<len+1;i++)
             for(int j=1;j<len+1;j++){
             if(str.charAt(i-1)==rev.charAt(j-1)) S[i][j]=S[i-1][j-1]+1; //与反字符串比较,有一个相同字符的记1次,并且和上对角的累计在一起
                else if(S[i][j-1]>S[i-1][j]) S[i][j]=S[i][j-1];   //与反字符串比较有不同字符时,该坐标左边与上面比较取较大值
                 else S[i][j]=S[i-1][j];
             }
             return len-S[len][len];  //上面的运算把累计的最大次数推到了最右下格
        }
    
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            while(scanner.hasNext()){
                String str=scanner.nextLine();
                System.out.println(HuiWenNum(str));
            }
        }
    }

  • 相关阅读:
    Linux終端一行命令发送邮件
    团队冲刺2.4
    团队冲刺2.3
    团队冲刺2.2
    找水王
    评价win10自带输入法——微软拼音输入法
    梦断代码阅读笔记01
    团队冲刺2.1
    第十三周总结
    第十二周总结
  • 原文地址:https://www.cnblogs.com/tk55/p/6624191.html
Copyright © 2011-2022 走看看