题目描述
输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。
输入描述
输入字符串S,S的长度 1 ≤ N ≤ 100
输出描述
输出倒序后的字符串
备注
标点符号左右的空格 ≥ 0,单词间空格>0
用例
| 输入 | yM eman si boB. |
| 输出 | My name is Bob. |
| 说明 | 无 |
| 输入 | woh era uoy ? I ma enif. |
| 输出 | how are you ? I am fine. |
| 说明 | 无 |
题目解析
将字符串单词转为字符数组后进行reverse。但是单词中如果有标点符号的话,则标点符号的位置不能改变,比如enif. 倒序后为 fine. 其中 . 的位置在倒序前后是一样的。
从左到右遍历每一个字符,如果字符是 , . ? 或者空格,则看成一个分界符,将分界符之间的单词片段进行倒序。
C++
#include<iostream>
#include<vector>
#include<stdlib.h>
#include<algorithm>
#include<string.h>
using namespace std;
string reverse_string(string str){
// 反转字符串
string res = "";
for(int i = str.size()-1; i>=0; i--){
res += str[i];
}
return res;
}
int main()
{
// 输入处理
string input_str;
getli

华为OD机考中的单词倒序题目解析,涉及C++、JavaScript、Java、Python四种语言的实现。要求输入单行英文句子,输出每个单词倒序但保持标点符号位置不变。
订阅专栏 解锁全文
320

被折叠的 条评论
为什么被折叠?



