poj1159解题报告

来源:互联网 发布:厦门橙名网络 编辑:程序博客网 时间:2024/06/06 10:06

题目大意:给定一个字符串,让你在这个串中加入最少的字符,使其成为回文串,(回文串就是正着读和反着读一样的串)比如:"Ab3bd"加入最少加入两个字符才能成为回文串"dAb3bAd"或者 "Adb3bdA"。。。。求最少添多少个字符。。。

 

思路:假设长度为len的字符串存在str[ ]里,初始left=0,right=len-1,如果str[left]不等于str[right]那么则有find(letf,right)=min(find(left,rght-1),find(left+1,right)),,,,,如果str[left]等于str[right]那么就有find(letf,right)=find(left+1,right-1);

 

刚开始按照这个思路写的超时了,,后来考虑到搜索过程中有很多重复搜索的细节,于是就开个数组把已经搜索到的结果记录下来,,最后1600MS过了 。太菜了。。汗。。::>_<::

 

 

原创粉丝点击