Leetcode腾讯50题精选题解|反转字符串中的单词

    xiaoxiao2025-05-14  7

    腾讯50题精选

    题目描述解题思路以及运用知识点Leetcode运行代码

    题目描述

    给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

    示例 1:

    输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

    解题思路以及运用知识点

    本题和昨天的那题很类似,但又有不同,不同处在于,需要判断字符串中每个单词的位置,并将每个单词字母反转,且不改变其单词位置。这是解题的难点以及关键点。 那么,如何判断每个单词的位置呢?从题中我们可以知道,每个单词之间是通过空格区分的,也就是说,每个单词的前后都会有空格,那么,我们就可以通过空格的位置来区分每个单词!我们可以用find()函数查找! find()函数:int a=s.find(t) //t在s中的第a个位置上!

    Leetcode运行代码

    class Solution { public: string reverseWords(string s) { string res = ""; int pre = 0; int pos = s.find(" ", pre); while(pos!=string::npos){ for(int i = pos-1;i>=pre;i--){ res += s[i]; } res += " "; pre = pos+1; pos = s.find(" ", pre); } for(int i = s.length()-1;i>=pre;i--){ res += s[i]; } return res; } };

    欢迎关注,一起学习!

    最新回复(0)