《程序员代码面试指南》字符串拼接为回文串问题——java实现

字符串拼接为回文串问题

题目描述:

链表words中都是不同的词,如果其中str1加str2之后是回文串,
则str1的位置和str2的位置我们需要收集。
比如
words = [“bat”, “tab”, “cat”]
返回[[0, 1], [1, 0]]
words = [“abcd”, “dcba”, “lls”, “s”, “sssll”]
返回[[0, 1], [1, 0], [3, 2], [2, 4]]

题目难度:

medium

题目思路:

判断一个字符串与另一个字符串拼接是否能成为回文串,只需要三步:

  1. 将当前字符串反转,然后判断所给的字符串链表中,是否有反转的字符串。如果有,则在给定字符串后面或者前面拼接都可以;
  2. 判断给定字符串最长前缀回文串,然后非回文串部分反转,并找到是否有该反转串,若有,则直接放在头部,就能构成拼接回文串;判断给定字符串最长前缀回文串,然后非回文串部分反转,并找到是否有该反转串,若有,则直接放在头部,就能构成拼接回文串;
  3. 判断给定字符串最长后缀回文串,然后头部非回文串部分反转,并找到是否有该反转串,若有,则直接放在尾部,就能构成拼接回文串;判断给定字符串最长后缀回文串,然后头部非回文串部分反转,并找到是否有该反转串,若有,则直接放在尾部,就能构成拼接回文串。

代码实现:

在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值