编程题
行_之_
这个作者很懒,什么都没留下…
展开
-
编程题--最长公共子序列
题目:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。思路:提到回文串,自然要利用回文串的特点,想到将源字符串逆转后,“回文串”(不一定连续)相当于顺序没变 求原字符串和其反串的最大公共子序列(不是子串,因为可以不连续)的长度(使用动态规划很容易求得),然后用原字符串的长度减去这个最大公共子串的长度就得到了最小编辑长度。原创 2017-07-06 19:44:00 · 407 阅读 · 0 评论 -
编程题--移动字符串移动
题目:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。(应该指常数空间复杂度)思路:从前到后扫描一遍字符串,每次将一块连续的小写字母和它之前的连续的大写字母交换位置。代码:#include<iostream>#include<string>using namespace std;bool isUp(char& a) { if (a >= 'A'&&原创 2017-07-06 22:09:24 · 613 阅读 · 0 评论