帮忙看下这些程序,为什么online judge通不过(续)
Description:最近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下...
Description:
最近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W,F就转化成I;(2) 如果访问到字符C,M,S就分别转化成L,o,v;(3) 如果访问到字符D,P,G,B就转化成e;(4) 如果访问到字符L,X就分别转化成Y,u;(5) 其他字符均保持不变。(6) 遇到END就结束!
Sample Input:
A
CMSD
LMX
END
Sample Output:
I
Love
You
我的代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void main(){
vector<string> vs;
string str;
cin >> str;
while("END"!=str){
vs.push_back(str);
cin >> str;
};
for(int i=0;i<vs.size();i++){
for(int j=0;j<vs[i].size();j++){
switch(vs[i][j]){
case 'A' :case 'W': case 'F' :
cout << 'I'; break;
case 'C':
cout << 'L'; break;
case 'M':
cout << 'o'; break;
case 'S':
cout << 'v'; break;
case 'D': case 'P': case 'G': case 'B':
cout << 'e'; break;
case 'L':
cout << 'Y'; break;
case 'X':
cout << 'u'; break;
default:
cout << vs[i][j];
}
}
cout << endl;
}
}
错误提示:Presentation Error
Description:
Fans是个ACM程序设计迷。有时侯,他表现出很强烈的逆反心理,你往东,他往西,你往南,他偏往北。这一次,不知道又是谁惹着他了,好端端的一个个01串,到了他的手里,都变成10串了。请你编个程序来模仿他的行为,将01串(长度≤200),全变成10串吧。
Sample Input:
0110100100100
1000000010000000000
Sample Output:
1001011011011
0111111101111111111
我的代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void main(){
vector<string> vs;
string str;
int i=0;
while(i<2){
cin >> str;
vs.push_back(str);
i++;
};
for(int i=0;i<vs.size();i++){
for(int j=0;j<vs[i].size();j++){
switch(vs[i][j]){
case '0':
cout << '1'; break;
case '1':
cout << '0'; break;
}
}
cout << endl;
}
}
错误提示:Wrong Answer
请帮忙指出错在哪里,以及怎么修改
经常遇到就没辙的形式有memory limit exceed,time limit exceed,presentation error
如果遇到这些问题要精简自己的程序吧,但如何精简?是否有专门的书介绍这方面知识?请推荐下
还有有时在本地答案是正确的,但Online judge就是通不过,又是怎么回事?
还是不明白该怎么做,不过还是谢谢你的回答 展开
最近Kingly对编码很感兴趣,于是从网上找了一些编码原则来对字符串做实验。由于Kingly一直很忙,所以希望你这位编程高手来替他解决这个问题。下面是编码原则:(1) 如果访问到字符A,W,F就转化成I;(2) 如果访问到字符C,M,S就分别转化成L,o,v;(3) 如果访问到字符D,P,G,B就转化成e;(4) 如果访问到字符L,X就分别转化成Y,u;(5) 其他字符均保持不变。(6) 遇到END就结束!
Sample Input:
A
CMSD
LMX
END
Sample Output:
I
Love
You
我的代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void main(){
vector<string> vs;
string str;
cin >> str;
while("END"!=str){
vs.push_back(str);
cin >> str;
};
for(int i=0;i<vs.size();i++){
for(int j=0;j<vs[i].size();j++){
switch(vs[i][j]){
case 'A' :case 'W': case 'F' :
cout << 'I'; break;
case 'C':
cout << 'L'; break;
case 'M':
cout << 'o'; break;
case 'S':
cout << 'v'; break;
case 'D': case 'P': case 'G': case 'B':
cout << 'e'; break;
case 'L':
cout << 'Y'; break;
case 'X':
cout << 'u'; break;
default:
cout << vs[i][j];
}
}
cout << endl;
}
}
错误提示:Presentation Error
Description:
Fans是个ACM程序设计迷。有时侯,他表现出很强烈的逆反心理,你往东,他往西,你往南,他偏往北。这一次,不知道又是谁惹着他了,好端端的一个个01串,到了他的手里,都变成10串了。请你编个程序来模仿他的行为,将01串(长度≤200),全变成10串吧。
Sample Input:
0110100100100
1000000010000000000
Sample Output:
1001011011011
0111111101111111111
我的代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void main(){
vector<string> vs;
string str;
int i=0;
while(i<2){
cin >> str;
vs.push_back(str);
i++;
};
for(int i=0;i<vs.size();i++){
for(int j=0;j<vs[i].size();j++){
switch(vs[i][j]){
case '0':
cout << '1'; break;
case '1':
cout << '0'; break;
}
}
cout << endl;
}
}
错误提示:Wrong Answer
请帮忙指出错在哪里,以及怎么修改
经常遇到就没辙的形式有memory limit exceed,time limit exceed,presentation error
如果遇到这些问题要精简自己的程序吧,但如何精简?是否有专门的书介绍这方面知识?请推荐下
还有有时在本地答案是正确的,但Online judge就是通不过,又是怎么回事?
还是不明白该怎么做,不过还是谢谢你的回答 展开
1个回答
镭速传输
2024-10-28 广告
2024-10-28 广告
作为深圳市云语科技有限公司的一员,我们推出的FTP替代升级方案,旨在解决传统FTP在安全性、效率、稳定性及管理方面的不足。我们的产品通过采用自主研发的Raysync传输协议,实现高效、安全的文件传输,即使在恶劣网络环境下也能确保传输的稳定性...
点击进入详情页
本回答由镭速传输提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询