zoukankan      html  css  js  c++  java
  • [编程题] 构造回文

    给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
    输出需要删除的字符个数。

    输入描述:

    输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.



    输出描述:

    对于每组数据,输出一个整数,代表最少需要删除的字符个数。


    输入例子:
    abcda
    google
    

     

    输出例子:
    2
    2
    思想:回文串的特点是,逆序输出和正序输出是一样的。所以这道题可以从这方面来考虑。如果将此字符串逆序输出,那么两个字符串的最长公共子序列将是最长的回文字符串,那么剩余的值将是要删除的字符个数。
     1 package fromniuke;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Test28 {
     6 
     7         public static void main(String[] args){
     8             Scanner scan = new Scanner(System.in);
     9             while(scan.hasNext()){
    10                 String str = scan.nextLine();
    11                 System.out.println(str.length()-getResult(str));
    12             }
    13         }
    14         public static int getResult(String str){
    15             StringBuilder sb  = new StringBuilder(str);
    16             String newStr = sb.reverse().toString();
    17             char[] c1 = str.toCharArray();
    18             char[] c2 = newStr.toCharArray();
    19             int n = str.length();
    20             int[][] dp = new int[n+1][n+1];
    21             for(int i=1;i<n+1;i++){
    22                 for(int j=1;j<n+1;j++){
    23                     if(c1[i-1]==c2[j-1]){ //此处应该减1.
    24                         dp[i][j]=Math.max(Math.max(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1]+1);
    25                     }else{
    26                         dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);
    27                     }
    28                 }
    29             }
    30             return dp[n][n];
    31         }
    32 }
    
    
    
    
    
    Jumping from failure to failure with undiminished enthusiasm is the big secret to success.
  • 相关阅读:
    第八周作业
    第七周上机作业2
    神经网络基础
    [网鼎杯 2020 青龙组]AreUSerialz
    BJDCTF 2nd old-hack
    php反序列化漏洞学习
    CTFHUB-HTTP协议
    ctfhub-密码口令
    CTFHUB-信息泄漏
    buuctf-[BJDCTF 2nd]elementmaster
  • 原文地址:https://www.cnblogs.com/chongerlishan/p/5970308.html
Copyright © 2011-2022 走看看