本文主要是介绍557. 反转字符串中的单词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【题目】
https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
【代码】
// reverseWords.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <string>
#include <vector>using namespace std;string reverseWords(string s) {int len = s.size();vector<int> isblank;for (int i = 0; i < len; i++) {if (s[i] == ' ') {isblank.push_back(i);}}isblank.push_back(len);for (int i = 0; i <= isblank[0]/2; i++) {char temp = s[isblank[0] -1 - i];s[isblank[0] - 1 - i] = s[i];s[i] = temp;}for (int i = 1; i < isblank.size(); i++) {for (int j = isblank[i - 1] + 1; j <= (isblank[i - 1] + isblank[i]) / 2; j++) {char temp = s[isblank[i - 1] + isblank[i] - j];s[isblank[i - 1] + isblank[i] - j] = s[j];s[j] = temp;}}for (int i = 0; i < len; i++)printf("%c", s[i]);return s;
}
int main()
{string s("Let's take LeetCode contest");string res = reverseWords(s);return 0;
}
【总结】
1. 在反转第一个单词时犯了错误,i的上限设成了isblank[0]-1,导致反转了两次...失了智
2. pringt不能整体打印字符串
这篇关于557. 反转字符串中的单词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!