题目1 : 回文字符串
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
-
ABAD
样例输出 -
1
-
动态规划的题目
-
package hihocoder; import java.util.*; //https://hihocoder.com/problemset/problem/1323 public class huiwnzifuchuan { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); String s=sc.nextLine(); sc.close(); int n=s.length(); int dp[][]=new int[n][n]; for (int i = n-1; i >= 0; i--) for (int j = i+1; j < n; j++) if (s.charAt(i) == s.charAt(j)) dp[i][j] = dp[i+1][j-1]; else dp[i][j] = Math.min(Math.min(dp[i+1][j], dp[i][j-1]), dp[i+1][j-1])+1; System.out.println(dp[0][n-1]); } }
描述
给定一个字符串 S ,最少需要几次增删改操作可以把 S 变成一个回文字符串?
一次操作可以在任意位置插入一个字符,或者删除任意一个字符,或者把任意一个字符修改成任意其他字符。
输入
字符串 S。S 的长度不超过100, 只包含'A'-'Z'。
输出
最少的修改次数。