本帖最后由 不可言 于 2014-6-20 20:30 编辑  
 
发布公司:CSDN 
有 效 期:2014-06-13至2015-06-13 
难 度 等 级:★★★★ 
答 题 时 长:120分钟 
编程语言要求:C C++ Java C# 
 
悬赏详情 一等奖 : 价值4999的诺基亚Lumia1020手机一台。  
二等奖 : 价值799的平板电脑一台。  
三等奖 : 价值199的移动电源一个。  
题目详情 
这是个字符串问题。我们的字符串只包含大写字母。我们定义一个字母和它13位以后的字母互补。即A与N互补,B与O互补,C与P互补……,我们需要找一个字符串的两个不重叠的子串,其中一个和另外一个的翻转全互补。另外,因为我们的问题来自生物学,所以我们允许这两个字符串的一个可以删掉两个字符(注意:仅允许一个字符串删掉任意位置的两个字符,另外一个必须全部互补上)。我们的目的是求最长的反向互补子串的长度。 
输入格式: 
多组数据,每组数据一行,有一个字符串。每个字符串长度不超过2000,只有大写英文字母组成。 
输出格式: 
每组数据输出一行包含一个整数,表示最长的反向互补子串长度。 
答题说明 
 
输入样例 
ABCD 
ABCDQOPN 
ABON 
输出样例: 
0 
2 
2 
解释: 
第一个样例,没有互补的子串。 
第二个样例,AB和NO互补,所以反向互补子串的时候我们可以选择NPO,删掉一个P即可。 
第三个样例,AB与ON反向互补。 
 
原文链接:http://hero.csdn.net/Question/Details?ID=616&ExamID=611&from=4 
 
注:可以通过原文链接在线答题,。 
通过的大神一定要把答案留下啊 |   
        
 
    
    
    
     
 
 |