字符串取出部分字符后变为回文字符串(二)

本文介绍了如何通过暴力搜索的方法,从给定字符串中移除字符以形成回文字符串的方案。通过遍历所有可能的子集,判断剩余字符串是否为回文,从而找出所有可能的组合。示例和代码详细解释了这一过程。
摘要由CSDN通过智能技术生成

这个属于一种暴力搜索的手段。输入牛客网测试区会显示运行超时!

运行通过见我的另一篇构造回文博客。

问题描述:

对于一个字符串,从前开始读和从后开始读是一样的则称为回文字符串。

有一个字符串s,有多少中方案从该字符串中移除0个或多个字符串使其变为回文串。

其中,空串不算字符串。对于两种移除方案,如果移除的字符依次构成的序列不一样就是不同的方案。

示例:XXY 对应 X,XY,YX,Y 4中移除方案。


思路:

1、求出所有字符串的子集;

2、在求子集的过程中:

        a. 每得到一个子集,将子集看作删除的字符串;

        b. 用原字符串减掉上述子集;得到剩下的字符串;

        c. 判断上述剩下的字符串是否为回文字符串;是则将a中子集放入一个无重复元素的List;


整体代码如下(以“XXYYXX”为例):

package ali.example;

import java.util.ArrayList;
import java.util.List;

public class J0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值