题解
【基础】镜像字符串
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main(){ int n; cin >> n; //cin读完数字会残留换行,用getchar吸收换行符,防止getline读空 getchar(); while(n--){ string s; getline(cin,s); int b=0,g=0; for(int i=0;i<s.size();i++){ // 当前字符是空格 if(s[i]==' '){ // 前面存在完整单词,翻转输出 if(g>0){//空格前面的字符超过一个 string dc=s.substr(b,g); reverse(dc.begin(),dc.end()); cout<<dc; g=0; } // 空格直接原样输出 cout<<s[i]; }else{ // 非空格字符,属于单词内容 if(g==0){ // 开启新单词,记录单词起始位置 b=i; g=1; }else{ // 单词长度累加 g++; } } } // 处理行末尾最后一个单词 if(g>0){ string dc=s.substr(b,g); reverse(dc.begin(),dc.end()); cout<<dc; } cout<<endl;// 一行处理完换行 } return 0; }
- 1