LeetCode反转单词前缀

100 篇文章 2 订阅

反转单词前缀

给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。

例如,如果 word = “abcdefd” 且 ch = “d” ,那么你应该 反转 从下标 0 开始、直到下标 3 结束(含下标 3 )。结果字符串将会是 “dcbaefd” 。
返回 结果字符串 。

示例 1:

输入:word = “abcdefd”, ch = “d”
输出:“dcbaefd”
解释:“d” 第一次出现在下标 3 。 反转从下标0 到下标 3(含下标 3)的这段字符,结果字符串是 “dcbaefd” 。

看了官方题解才写出来

思路比较简单,先用indexOf方法找到在字符串里面的下标,然后双指针,一个从最左端开始另一个从最右端开始,交换彼此的值即可。(结束的条件就是两个指针所指位置一样时,无论是奇数还是偶数都是)
还有一个点就是我要进行两个字符串的两个字符间的操作,需要先转换成字符数组,这样就可以任意交换元素了。最后再将数组转换回String即可。

class Solution {
    public String reversePrefix(String word, char ch) {
        int right=word.indexOf(ch);
        String s;
        if(right>=0){
            char[] a = word.toCharArray();
            int left=0;
            while(left<right){
                char flag = a[left];
                a[left] = a[right];
                a[right] = flag;
                left++;
                right--;
            }
        word = new String(a);
        }
        return word;
    }
}

又是一学期的期末了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值