阿里云进阶训练营--day05

Jerry给Tom一道难题,从2*n长的字符串中选出两个等长子串,使其一个等于另一个的反转。本题涉及搜索、字符串和位运算,采用Java实现暴力破解法找到所有可能的解。

题目

等级:中等
知识点:搜索、字符串、位运算

有一天Jerry给Tom出了一道题来考验他。Jerry给了Tom一个长度为2*n的只包含小写字母的字符串,让Tom将这个字符串任意挑选字符,将其分成两个等长的字符串a和b(对于一个si不能同时被选到a和b中),然后a要和reverse(b)相同(a和反转后的b相同),问这样的方案数有多少?Tom有些为难,所以请你来帮帮他吧。
输入一个正整数n,和一个长度为2*n的字符串
输出方案数。
示例1
输入:
2
"abba"
输出:
4

思路

这一题限制,只可以用java来写解题,由于是算法我选择了最简单粗暴的一种解法暴力破解,经过枚举反复尝试找出所有的排列方法,又看了群里大佬发的解题思路进行代码实现,经过n次的报错后终于找出了正确的解法,太难了。
欢迎加入阿里云高校计划https://developer.aliyun.com/adc/college

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值