编程之reverseWords
来源:互联网 发布:0基础学通c语言 编辑:程序博客网 时间:2024/06/08 20:05
模仿答案:
class Solution {public: string reverseWords(string s) { int front = 0; int str_length = s.length(); for(int i = 0; i <= str_length; i++) { if(i == s.length() || s[i] == ' ') { reverse(&s[front], &s[i]); front = i + 1; } } return s; }};
写到vs里面:
定义字符串 s 和 p 调用reverseWords#include<iostream> #include<sstream>using namespace std;string reverseWords(string s) {int start = 0, end = 0, n = s.size();while (start < n && end < n) {while (end < n && s[end] != ' ') ++end;for (int i = start, j = end - 1; i < j; ++i, --j) {swap(s[i], s[j]);}start = ++end;}return s;}int main(){ string s = "Let's take LeetCode contest"; string p; p =reverseWords(s); cout <<p<<endl; return 0;}
注:上次提到的#include<sstream>可以代替#include<string>
amazing!!!!!!!!!!!!!!!!
他说可以用reverse函数,找到空格或最后字符时将空格前的字符转置,front+1是每个字符串的首字符。
reverse(beg,end)
reverse_copy(sourceBeg,sourceEnd,destBeg)reverse()会将区间[beg,end)内的元素全部逆序;
reverse_copy()会将源区间[sourceBeg,sourceEnd)内的元素复制到"以destBeg起始的目标区间",并在复制过程中颠倒安置次序;
reverse_copy()返回目标区间内最后一个被复制元素的下一个位置,也就是第一个未被覆盖的元素;代码
#include<iostream>#include<string>using namespace std;string reverseWords(string s) {int front = 0;int str_length = s.length();for (int i = 0; i <= str_length; i++) {if (i == s.length() || s[i] == ' ') {reverse(&s[front], &s[i]);front = i + 1;}}return s;}int main(){ string s = "Let's take LeetCode contest"; string p; p =reverseWords(s); cout <<p<<endl; return 0;}
阅读全文
0 0
- 编程之reverseWords
- leetcode:reverseWords
- Leet Code源码 reverseWords
- INTERNET编程之SOCKET编程
- INTERNET编程之CSOCKET编程
- 网络编程之编程日记
- golang编程之时间编程
- 网络编程之TCP编程
- 网络编程之UDP编程
- 网络编程之Socket编程
- golang编程之时间编程
- 嵌入式编程之模块化编程
- 极限编程之配对编程
- 多线程编程之系统编程
- 系统编程之文件系统编程
- 编程之道之我见
- Java之编程之美
- 编程之路 之 人生
- centos 安装 matplotlib
- 性能测试——系统业务指标
- mybatis的日期格式
- mobilenet
- 无限极
- 编程之reverseWords
- HDOJ2063(匈牙利算法模板题)
- Python函数之locals() 和globals()
- QInputContext
- 前端之干货
- JS数组的方法
- 总结一下C++与C#之间的区别
- node npm cnpm 全局安装淘宝NPM 镜像
- Material Design 之 Toolbar 开发实践总结