腾讯2017暑期实习生编程题(第一道)
来源:互联网 发布:金丝楠木淘宝店铺 编辑:程序博客网 时间:2024/06/02 19:55
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
输出需要删除的字符个数。
package com.itmyhome.tencent;import static org.junit.Assert.*;import java.util.Scanner;import org.junit.Test;public class MainString {@Test/** * 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串 *,如何删除才能使得回文串最长呢? */public void test() {Scanner sc=new Scanner(System.in);long start=System.currentTimeMillis();while(sc.hasNext()){String s1=sc.next();String s2=new StringBuilder(s1).reverse().toString();System.out.println("s2= "+s2);int [][]dp=new int[s1.length()+1][s2.length()+1];for(int i=1;i<dp.length;i++){for(int j=1;j<dp[0].length;j++){dp[i][j]=s1.charAt(i-1)==s2.charAt(j-1)?dp[i-1][j-1]+1:Math.max(dp[i-1][j], dp[i][j-1]);}}long time=System.currentTimeMillis()-start;for(int k=0;k<dp.length;k++){for(int m=0;m<dp[k].length;m++){System.out.print(dp[k][m]+" ");}System.out.println();}System.out.println("程序运行所需时间为:"+time+"ms");System.out.println(s1.length()+","+dp[s1.length()][s2.length()]);System.out.println(s1.length()-dp[s1.length()][s2.length()]); }}}
阅读全文
0 0
- 腾讯2017暑期实习生编程题(第一道)
- 腾讯笔试编程题(2017暑期实习生编程题)
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题器
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题3
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- 腾讯2017暑期实习生编程题
- HDUOJ 2010 水仙花数
- AOJ 894 (无向图的回溯着色法,四色)
- JavaScript高级程序设计-学习笔记2
- HDOJ 2040 亲和数
- oracle 锁
- 腾讯2017暑期实习生编程题(第一道)
- java中的static关键字
- 设计模式-组合模式
- 单词接龙 p1019
- Java 循环
- tar、scp、sftp、rsync简单使用
- 关于Thread可能的面试题
- Android——开发模式mvc和mvp
- android XML文件解析