腾讯笔试题 构造回文字符串
来源:互联网 发布:淘宝一键复制宝贝违法 编辑:程序博客网 时间:2024/05/17 06:21
题目描述:
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
输出需要删除的字符个数
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.
输出描述:
对于每组数据,输出一个整数,代表最少需要删除的字符个数。
输入例子:
abcda
google
输出例子:
2
2
实现思想:
首先保存s字符串,之后再保存其rs相反的字符串。对其求最大子序列,若果不清楚最长公共子序列请点击括号内的链接(最长公共子序列),则结果就是回文串。
实现代码:
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String s = in.nextLine(); System.out.println(getResult(s)); } } public static int getResult(String s) { int len = s.length(); String res = new StringBuffer(s).reverse().toString(); int[][] data = new int[len + 1][len + 1]; for (int i = 0; i < len + 1; i++) { data[i][0] = data[0][i] = 0; } for (int i = 1; i < len + 1; i++) { for (int j = 1; j < len + 1; j++) { if (s.charAt(i - 1) == res.charAt(j - 1)) { data[i][j] = data[i - 1][j - 1] + 1; } else if (data[i - 1][j] >= data[i][j - 1]) { data[i][j] = data[i - 1][j]; } else data[i][j] = data[i][j - 1]; } } return len - data[len][len]; }}
测试结果:
4 0
- 腾讯笔试题 构造回文字符串
- 腾讯笔试编程题--构造回文
- 腾讯笔试题3 构造回文
- 笔试题(一) 构造回文字符串
- 腾讯17年暑期实习生笔试题 - 构造回文
- 腾讯笔试编程题:构造回文(C++)
- 2016腾讯实习生笔试编程题:构造回文
- 2016年腾讯笔试题——构造回文
- [2016腾讯暑期实习在线笔试题]最长回文字符串
- 2016年腾讯笔试题之回文字符串
- [2016腾讯暑期实习在线笔试题]最长回文字符串
- 腾讯编程题:构造回文
- 回文字符串 笔试题
- 构造回文_腾讯实习生编程题
- 可删除某些字符的最长回文字符串(2016腾讯在线笔试题)
- 腾讯 构造回文
- 构造回文字符串(最长公共子序列)----腾讯2017暑期实习生编程题
- 2016腾讯笔试题,删除字符串中的字符,使得剩下的字符串是回文串,如何删除使得回文串最长
- 接受系统广播消息 BroadcastReceiver
- Jquery是如何传参数的
- 【leetcode】28. Implement strStr()
- Android OkHttp完全解析 是时候来了解OkHttp了
- 返回JSON数据到客户端
- 腾讯笔试题 构造回文字符串
- Web容器 、Web服务和应用服务器
- Oracle排序,伪列,字符函数,数字函数,日期行数
- mysql 游标与事务共同使用
- 静态链接和动态链接库混用导致的链接错误LIN
- VS2013中缺少 ADO 实体模型,这一项。
- java 为何null布局 jbutton鼠标划过才显示
- OpenCV之均值漂移(Mean Shift)算法
- iOS面试题二