【LeetCode每日一题】——557.反转字符串中的单词 III
创始人
2024-02-23 11:08:15
0

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【解题思路】
  • 七【题目提示】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 字符串

二【题目难度】

  • 简单

三【题目编号】

  • 557.反转字符串中的单词 III

四【题目描述】

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

五【题目示例】

  • 示例 1:

    • 输入:s = “Let’s take LeetCode contest”
    • 输出:“s’teL ekat edoCteeL tsetnoc”
  • 示例 2:

    • 输入: s = “God Ding”
    • 输出:“doG gniD”

六【解题思路】

  • Java版:开辟新的空间,找到字符串中的每个单词,反转加入新的字符串即可,需要注意空格的问题
  • C版:没有开辟新的空间,在原字符串操作,依旧是找到字符串中每个单词,直接进行反转即可,以空格为分界
  • 具体操作可以参考代码,比较简单
  • 最后返回结果即可

七【题目提示】

  • 1<=s.length<=5∗1041 <= s.length <= 5 * 10^41<=s.length<=5∗104
  • s包含可打印的ASCII字符。s 包含可打印的 ASCII 字符。s包含可打印的ASCII字符。
  • s不包含任何开头或结尾空格。s 不包含任何开头或结尾空格。s不包含任何开头或结尾空格。
  • s里至少有一个词。s 里 至少 有一个词。s里至少有一个词。
  • s中的所有单词都用一个空格隔开。s 中的所有单词都用一个空格隔开。s中的所有单词都用一个空格隔开。

八【时间频度】

  • Java版
    • 时间复杂度:O(n)O(n)O(n),其中nnn为输入字符串的长度
    • 空间复杂度:O(n)O(n)O(n),其中nnn为输入字符串的长度
  • C版
    • 时间复杂度:O(n)O(n)O(n),其中nnn为输入字符串的长度
    • 空间复杂度:O(1)O(1)O(1)

九【代码实现】

  1. Java语言版
package String;/*** @Author: IronmanJay* @Description: 557.反转字符串中的单词 III* @CreateTime: 2022-11-28  09:18*/
public class p557_ReverseWordsInAStringIII {public static void main(String[] args) {String s = "Let's take LeetCode contest";String res = reverseWords(s);System.out.println("res = " + res);}public static String reverseWords(String s) {StringBuffer sb = new StringBuffer();int index = 0;int len = s.length();while (index < len) {int left = index;while (index < len && s.charAt(index) != ' ') {index++;}int right = index - 1;while (left <= right) {sb.append(s.charAt(right));right--;}while (index < len && s.charAt(index) == ' ') {sb.append(' ');index++;}}return sb.toString();}}
  1. C语言版
#include
#includechar * reverseWords(char * s)
{int index = 0;int len = strlen(s);while (index < len){int left = index;while (index < len && s[index] != ' '){index++;}int right = index - 1;while (left < right){char temp = s[left];s[left] = s[right];s[right] = temp;left++;right--;}index++;}return s;
}/*主函数省略*/

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...