其他分享
首页 > 其他分享> > LeetCode 2000. Reverse Prefix of Word

LeetCode 2000. Reverse Prefix of Word

作者:互联网

LeetCode 2000. Reverse Prefix of Word (反转单词前缀)

题目

链接

https://leetcode-cn.com/problems/reverse-prefix-of-word/

问题描述

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

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

示例

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

提示

1 <= word.length <= 250
word 由小写英文字母组成
ch 是一个小写英文字母

思路

大年初二的每日一题,字符串处理题目。

先转为数组,之后遍历,找到ch所在位置,设置break跳出循环,然后转置前面部分,包括index,和后面部分拼接,输出即可。

复杂度分析

时间复杂度 O(n)
空间复杂度 O(n)

代码

Java

    public String reversePrefix(String word, char ch) {
        int n = word.length();
        int index = -1;
        char[] chars = word.toCharArray();
        for(int i = 0;i<n;i++){
            if(chars[i] == ch){
                index = i;
                break;
            }
        }
        if(index == -1){
            return word;
        }else {
            int l = 0,r = index;
            while (l<r){
                char tmp = chars[l];
                chars[l++] = chars[r];
                chars[r--] = tmp;
            }
            word = new String(chars);
            return word;
        }

    }

标签:ch,下标,word,复杂度,dcbaefd,Prefix,2000,字符串,Word
来源: https://www.cnblogs.com/blogxjc/p/15860438.html