创造回文

一、题目描述

       给定一个字符串,问是否能通过添加一个字母将其变为回文串。

二、解题思路

       方法一: 设置两个指针,头指针指向字符串首部,尾指针指向字符串尾部。若头尾指针相等,头指针加加,尾指针减减,向中间靠拢,若不相等,则进一步判断(头指针++,尾指针)和(头指针,尾指针--)中是否存在回文,运用递归完成。

       方法二:既然可以通过添加构造回文,那么也可以通过删除一个构造回文。

       方法三:判断原字符串和翻转字符串的最长公共子序列长度是否比原字符串长度小1或相等。

       方法一设计和实现:

创造回文_第1张图片

       方法二设计和实现:

创造回文_第2张图片

       方法三设计和实现:

       1)首先获取字符串长度和反转字符串

       2)进行LCS匹配

创造回文_第3张图片

       3)判断匹配书是否等于长度或者长度减一

创造回文_第4张图片

三、注意事项

       回文判断函数,利用字符串反转匹配。

创造回文_第5张图片

四、代码实现

       见我的github:创造回文

 

你可能感兴趣的:(算法及其应用,算法工程师进阶之路)