最新华为OD机试
题目描述
输入单行英文句子,里面包含英文字母,空格以及,.?三种标点符号,请将句子内每个单词进行倒序,并输出倒序后的语句。
输入描述
输入字符串S,S的长度 1 ≤ N ≤ 100
输出描述
输出倒序后的字符串
备注
标点符号左右的空格 ≥ 0,单词间空格>0
示例1
输入
yM eman si boB.
输出
My name is Bob.
说明
示例2
输入
woh era uoy ? I ma enif.
输出
how are you ? I am fine.
说明
题目解析
将字符串单词转为字符数组后进行reverse。但是单词中如果有标点符号的话,则标点符号的位置不能改变,比如enif. 倒序后为 fine. 其中 . 的位置在倒序前后是一样的。
从左到右遍历每一个字符,如果字符是 , . ? 或者空格,则看成一个分界符,将分界符之间的单词片段进行倒序。
C++
#include<iostream>
#include<vector>
<