反转诗句
t2754:反转诗句
- 总时间限制:1000ms 内存限制:65536kB
- 描述
- 你手中有些从右向左读的诗句,比如“rose red red a like is luve my O”。
现在为了阅读这些美妙的诗句,你要把这些语句反转成正常的从左到右,即“O my luve is like a red red rose”。 - 输入
- 每一行为原来从右向左读的诗句S。该诗句中不包含任何标点符号,单词间以空格隔开。每条诗句最多包含 50个单词,每个单词最多包含50个字符。
- 输出
- 每一行为正常的从左到右读的诗句。
- 样例输入
-
rose red red a like is luve my O June in sprung newly That's melodie the like is luve my O tune in played sweetly That's
- 样例输出
-
O my luve is like a red red rose That's newly sprung in June O my luve is like the melodie That's sweetly played in tune
注释:这个题目其实就是翻转句子当中所有单词的顺序
(注意不是修改每一个单词中字母的顺序,而是修改单词在句子中的顺序)
本题需要注意的是:单词之间若是有多个空格要如何处理呢?若是直接用scanf或cin输入每一个单词,
然后像栈一样从栈顶到栈底输出每一个元素。这样就会忽略单词之间有多个空格的情况,无法输出单词间的多个空格。
所以要一次输入一整行,保存该行所有字符,然后再处理。其实这个做法在以前有过题目的。
http://www.cnblogs.com/huashanqingzhu/p/3457758.html
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int main() 6 { 7 char a[5000] = ""; 8 int n, i, j; 9 //freopen("5.in","r",stdin); 10 while(gets(a)) 11 { 12 n = strlen(a); 13 for(i=n-1;i>=0;i--) 14 { 15 if(a[i]==' ') 16 { 17 for(j=i+1;a[j]!=' '&&a[j]!='\0';j++) 18 cout<< a[j]; 19 cout<<" "; 20 } 21 } 22 for(i=0;a[i]!=' '&&a[i]!='\0';i++) 23 cout<<a[i]; 24 cout << endl; 25 } 26 return 0; 27 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App