1000. String Reversion


Time Limit: 1sec    Memory Limit:256MB
Description

 Given a valid identifier in C programs, please write a program to reverse it by respectively reversing two parts separated by ‘_’.

Input

 The first line is an integer m, indicating the number of test cases.
Then there are m lines and each line contains a string. A string will contain no more than 100 characters and there is one or less ‘_’.

Output

 For each test case, print out the string reversed.

Sample Input
 Copy sample input to clipboard
3
John_Smith
int_45
_me
Sample Output
nhoJ_htimS
tni_54
_em

Problem Source: 10级CS程序设计


Description

 Given a valid identifier in C programs, please write a program to reverse it by respectively reversing two parts separated by ‘_’.

Input

 The first line is an integer m, indicating the number of test cases.
Then there are m lines and each line contains a string. A string will contain no more than 100 characters and there is one or less ‘_’.

Output

 For each test case, print out the string reversed.

Sample Input
 Copy sample input to clipboard
3
John_Smith
int_45
_me
Sample Output
nhoJ_htimS
tni_54
_em


一开始的时候忘记string的length函数使用时候需要用(),捣鼓了不少时间
之后测试没问题
但是提交的时候发现WA
再次查看题目发现“_”符号是一个或者没有
因此原程序忽略了没有的情况,如果没有的时候是不会输出的
于是增加变量o进行记录
最后AC
#include<iostream>
#include<string>
using namespace std;
int main() {
	int num,j;
	string stack;
	cin>>num;
	for(int i=0; i<num; i++) {
		cin>>stack;
		int k=0,o=0;
		for(; k<stack.length(); k++) {
			if(stack[k]=='_') {
				o=1;
				for(j=k-1; j>=0; j--)
					cout<<stack[j];
				cout<<"_";
				for(int l=stack.length()-1; l>k; l--)
					cout<<stack[l];
				cout<<endl;
			}
		}
		if(o==0) {
			for(int u=k-1; u>=0; u--)
				cout<<stack[u];
			cout<<endl;
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值