字符串指定字符反转

1 题目

牛客网上的一道题目。

给定两个字符串s1、s2,将 s1 中的包含在 s2 中的字符翻转。

示例1
输入
"abcde","bcd"
输出
"adcbe"
说明
将'b','c','d'翻转 
示例2
输入
"acbde","dc"
输出
"adbce"
说明
将'c','d'翻转 

备注:
s1,s2只包含小写字母s1,s2只包含小写字母
1<=|s1|<=1e51<=∣s1∣<=1e5
1<=|s2|<=261<=∣s2∣<=26

链接:https://www.nowcoder.com/questionTerminal/fc0f14baa6b94f48bed7207f863db8d8
来源:牛客网

2 思路及源码

题目描述的不是很清晰,给的例子有很强误导性。我开始还以为是按照 s2 来反转,比如实例二中,s2 = “bcd”,所以 s1 的反转方式是 b 和 d 换位,举得例子也恰好满足这样。但其实题目的意思是,s1 中包含的 s1、s2 的公共字符,按照在 s1 中出现的顺序反转,跟 s2 的顺序毫无关系。

说一下我的思路,对 s1 从两头往中间遍历,分别找到左侧和右侧在 s2 中的字符,然后互换即可。题目其实很简单,和大家分享一下我的思路,因为看到很多解答都用到了一个额外的栈,个人感觉没有必要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值