Skip to content

Latest commit

 

History

History
63 lines (50 loc) · 1.66 KB

4104.md

File metadata and controls

63 lines (50 loc) · 1.66 KB

单词翻转 4104: 单词翻转

题目要求将一行字符串中的所有单词首尾翻转过来输出,单词间以空格分隔。

题目来源

4104: 单词翻转

总时间限制: 1000ms 内存限制: 65536kB

描述

输入一个句子(一行),将句子中的每一个单词翻转后输出。

输入

只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。

输出

翻转每一个单词后的字符串,单词之间的空格需与原文一致。

样例输入

hello world

样例输出

olleh dlrow

首先要区分句子中的单词,以空格分割来获取,之后每次读入一个单词,并将其翻转后输出,再继续下一个单词的读入,直到句子结尾。

#include <iostream>
#include <string>
using namespace std;
int main() {
	char cstr[501];
	cin.getline(cstr, 501);
	string str(cstr);
	int i, j;
	for (i = 0; i < str.length(); ++i) {
		if (str[i] == ' ') {
			cout << str[i];
			continue;
		}
		string sub;
		while (str[i] != ' ' && i < str.length()) {
			sub.push_back(str[i++]);
		}
		for (j = sub.length() - 1; j >= 0; --j) {
			cout << sub[j];
		}
		i--;
	}
	cout << endl;
	return 0;
}

4104.cpp 代码长度:438B 内存:200kB 时间:2ms 通过率:83% 最小内存:200kB 最短时间:0ms

读入含有空格的字符串需要使用cin.getline,之后从左到右遍历,判断空格,之后读入一个单词,用数组存储后反序输出,如此直到句子结尾。

有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。