洛谷B3640 T3 句子反转 题解

题目

链接

https://www.luogu.com.cn/problem/B3640

字面描述

题目背景

请尽量在 30min 之内写完题目。这是指「写代码」的时间;「读题」时间不计算在内。

题目描述

给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。

要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。

举一个例子:

we choose TO go 2 the 123 moon

程序应当输出:

MOON 321 THE 2 GO to CHOOSE WE

输入格式

仅一行,即需要反转的句子。

输出格式

仅一行,表示程序对句子的处理结果。

样例 #1

样例输入 #1
we choose TO go 2 the 123 moon
样例输出 #1
MOON 321 THE 2 GO to CHOOSE WE

提示

样例解释

首先应当按单词逆序,即:

moon 123 the 2 go TO choose we

小写变大写、大写变小写、倒转自然数之后,得到最终结果:

MOON 321 THE 2 GO to CHOOSE WE
数据规模与约定

对于 100 % 100\% 100% 的数据,句子中包含的单词数量不超过 1000 1000 1000,每个单词长度不超过 6 6 6

代码实现

水一篇题解

#include<bits/stdc++.h>
using namespace std;

const int maxn=1e3+10;
int cnt;
string x;
string a[maxn];
int main(){
	while(cin>>x)a[++cnt]=x;
	for(int i=cnt;i>=1;i--){
		int len=a[i].length();
		if(a[i][0]>='0'&&a[i][0]<='9'){
			for(int j=len-1;j>=0;j--)printf("%c",a[i][j]);
		}
		else{
			for(int j=0;j<len;j++){
				if(islower(a[i][j]))a[i][j]=toupper(a[i][j]);
				else a[i][j]=tolower(a[i][j]);
				printf("%c",a[i][j]);
			}
		}
		printf(" ");
	}
	return 0;
}
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Yxz_

我只是一名ssfoier

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值