力扣每日一题 2000 反转单词前缀

Posted 霜序0.2℃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣每日一题 2000 反转单词前缀相关的知识,希望对你有一定的参考价值。

题目

给你一个下标从 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” 。
示例 2:

输入:word = “xyxzxe”, ch = “z”
输出:“zxyxxe”
解释:“z” 第一次也是唯一一次出现是在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 “zxyxxe” 。
示例 3:

输入:word = “abcd”, ch = “z”
输出:“abcd”
解释:“z” 不存在于 word 中。
无需执行反转操作,结果字符串是 “abcd” 。

提示:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-prefix-of-word
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解释与代码

按照题意来模拟即可,可以用双指针,也可用其他方法

class Solution 
public:
    string reversePrefix(string word, char ch) 
        int cnt = -1;
        for (int i=0; i<word.size(); i++) 
            if (word[i] == ch) 
                cnt = i;
                break;
            
        
        if (cnt == -1) return word;
        for (int i=0; i<=cnt/2; i++) 
            swap(word[i], word[cnt-i]);
        
        return word;
    
;

以上是关于力扣每日一题 2000 反转单词前缀的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 2000. 反转单词前缀 / 1414. 和为 K 的最少斐波那契数字数目(贪心证明) / 1725. 可以形成最大正方形的矩形数目

7.整数反转Java版,每日一题系列(此题来自力扣网)

7.整数反转Java版,每日一题系列(此题来自力扣网)

力扣每日一题——反转每对括号之间的子串

力扣每日一题——反转每对括号之间的子串

力扣每日一题——反转每对括号之间的子串