给定一个字符串,逐个翻转字符串中的每个单词。
 
示例 1:
输入: "the sky is blue"
输出: "blue is sky the"

示例 2:
输入: "  hello world!  "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:
输入: "a good   example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

 
说明:

 无空格字符构成一个单词。
 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
 
思路:先去除首尾以及内含的空格,然后用word数组来记录每个单词,然后分别倒序输入到s中。
学习:网上oj因为不是一个测试样例执行一次总程序,所以全局变量应该执行一次清空一次。
 1 char dealS[10000] = { 0 };
2 char word[10000] = { 0 };
3
4 char* reverseWords(char* s)
5 {
6 int temBegin;
7 int temEnd;
8 int k = -1,l = -1;
9 int len = strlen(s);
10 memset()
11 for (temBegin = 0; temBegin < strlen(s); temBegin++) //删除开头的空格
12 {
13 if (s[temBegin] != ' ')
14 break;
15 }
16
17 for (temEnd = strlen(s) - 1; temEnd >= 0; temEnd--) //删除结尾的空格
18 {
19 if (s[temEnd] != ' ')
20 break;
21 }
22 for (int i = temBegin; i < temEnd + 1; i++)//删除中途的空格
23 {
24 if (s[i] != ' ')
25 {
26 dealS[++k] = s[i];
27 }
28 else if (s[i] == ' ')
29 {
30 if (s[i + 1] == ' ') //连续空格情况
31 continue;
32 else
33 dealS[++k] = ' ';
34 }
35 }
36
37 k = -1;
38 memset(s, 0, len); //清空s
39 for (int i = strlen(dealS)-1; i >= 0; i--)
40 {
41 while (dealS[i] != ' ' && i != -1)
42 {
43 word[++l] = dealS[i];
44 i--;
45 }
46
47 for (int j = l; j >= 0; j--)
48 {
49 s[++k] = word[j];
50 }
51 if (i != 0) //如果不是最后
52 {
53 s[++k] = ' ';
54 }
55 memset(word, 0, l + 1); //清空word
56 l = -1;
57 }
58 s[k] = '\0';
59 return s;
60 }
 

 
 

反转字符串里的单词(leetcode 4.10每日打卡)的更多相关文章

  1. 代码随想录算法训练营day08 | leetcode 344.反转字符串/541. 反转字符串II / 剑指Offer05.替换空格/151.翻转字符串里的单词/剑指Offer58-II.左旋转字符串

    基础知识 // String -> char[] char[] string=s.toCharArray(); // char[] -> String String.valueOf(str ...

  2. C#版(击败100.00%的提交) - Leetcode 151. 翻转字符串里的单词 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  3. leetcode python翻转字符串里的单词

    # Leetcode 151 翻转字符串里的单词### 题目描述给定一个字符串,逐个翻转字符串中的每个单词. **示例1:** 输入: "the sky is blue" 输出: ...

  4. C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

  5. Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)

    题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输 ...

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

    1.题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" ...

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

    反转字符串中的单词III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest ...

  8. LeetCode 557:反转字符串中的单词 III Reverse Words in a String III

    公众号:爱写bug(ID:icodebugs) 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. Given a string, you need to reve ...

  9. leetcode python反转字符串中的单词

    # Leetcode 557 反转字符串中的单词III### 题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. **示例1:** 输入: "L ...

  10. Java实现 LeetCode 557 反转字符串中的单词 III(StringBuilder的翻转和分割)

    557. 反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode c ...

随机推荐

  1. 2021-7-7 Vue的for使用实例

    <!DOCTYPE html> <html> <head> <title> </title> </head> <body& ...

  2. Magick.NET跨平台压缩图片的用法

    //首先NuGet安装:Magick.NET.Core,Magick.NET-Q16-AnyCPUusing ImageMagick; /// <summary> /// 压缩图片 /// ...

  3. pandas: 设置列名&获取所有列名

    解决方案 download_page_data_df.columns = column_name2excel 参考链接 https://www.cnblogs.com/bigtreei/p/10145 ...

  4. 手动安装vur-router并引用

    安装并引用 安装 npm install vue-router 引用 步骤一:在src路径下,创建router文件夹, 其下创建index.js // router/index.js import V ...

  5. vs(visual stuiod)中vc++工程的Filter和Folder及vcxproj知识

    vs中创建Filter 在一个新项目中右键 - Add - New,默认只有一选项 New Filter. 创建出来的Filter可以理解为是VS的过滤器(虚拟目录),它不会在本地的磁盘上新建目录,而 ...

  6. 【高并发】SimpleDateFormat类到底为啥不是线程安全的?(附六种解决方案,建议收藏)

    大家好,我是冰河~~ 首先问下大家:你使用的SimpleDateFormat类还安全吗?为什么说SimpleDateFormat类不是线程安全的?带着问题从本文中寻求答案. 提起SimpleDateF ...

  7. 《深入理解Java虚拟机》读书笔记:判断对象是否存活

    本节内容的概要如下; 对象已死吗? 一.判断对象是否存活的算法 1.引用计数器算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0 ...

  8. C#.NET 国密SM2 加密解密 与JAVA互通 ver:20230805

    C#.NET 国密SM2 加密解密 与JAVA互通 ver:20230805 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JAVA控制台 ...

  9. nacos系列:简介和安装

    目录 版本选择 安装 windows安装 centos安装 mysql方式存储 官网:https://nacos.io github:https://github.com/alibaba/nacos ...

  10. 【Unity3D】素描特效

    1 非真实渲染 ​ 法线贴图和凹凸映射中讲述了普通光照的渲染原理,实现的效果比较贴近真实世界(照相写实主义,Photorealism),非真实渲染(Non-Photorealism Rendering ...