附上本蒟蒻一开始写的代码,这个代码本蒟蒻实在是找不到什么问题,但是洛谷只得四十分,六个WA,希望有神犇可以在评论区指点我一下(这个代码可能有点麻烦,但是是我一开始的思路):
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String a= scanner.next();
char t[]=new char[3];//设置三个char数组,分别代表abc
t[0]='?';//任意设定初始值,我设定的?
t[1]='?';
t[2]='?';
char b[]=a.toCharArray();//将字符串转变为数组
for(int i=0;i<a.length();i=i+5){//五个一组,每次只浏览第一个就可以
if(b[i]=='a'){
if(b[i+3]=='a'){
continue;//如果等于a,继续循环
}
else if(b[i+3]=='b'){
t[0]='0';//等于b,就等于0
}
else if(b[i+3]=='c'){
t[0]='0';//等于c就等于0
}
else{//等于数字,就让它等于那个数字,b,c同理
t[0]= b[i+3];
}
}
else if(b[i]=='b'){
if(b[i+3]=='a'){
t[1]='0';
}
else if(b[i+3]=='b'){
continue;
}
else if(b[i+3]=='c'){
t[1]='0';
}
else{
t[1]= b[i+3];
}
}
else if(b[i]=='c'){
if(b[i+3]=='a'){
t[2]='0';
}
else if(b[i+3]=='b'){
t[2]='0';
}
else if(b[i+3]=='c'){
continue;
}
else{
t[2]= b[i+3];
}
}
}
if(t[0]=='?'){//如果没出现对a,b,c的定义那么就直接赋值为0
t[0]='0';
}if(t[1]=='?'){
t[1]='0';
}if(t[2]=='?'){
t[2]='0';
}
System.out.println(t[0]+" "+t[1]+" "+t[2]);//输出
}
}
这里附上本蒟蒻参考别的神犇的博客获得灵感(其实可以将a、b、c定义为int型)写的AC代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String s= scanner.next();
int a=0,b=0,c=0;
char m[]=s.toCharArray();
for(int i=0;i<s.length();i=i+5){
if(m[i]=='a'){
if(m[i+3]=='a'){
a=a;
}
else if(m[i+3]=='b'){
a=b;
}
else if(m[i+3]=='c'){
a=c;
}
else{
a= m[i+3]-'0';
}
}
else if(m[i]=='b'){
if(m[i+3]=='a'){
b=a;
}
else if(m[i+3]=='b'){
b=b;
}
else if(m[i+3]=='c'){
b=c;
}
else{
b= m[i+3]-'0';
}
}
else if(m[i]=='c'){
if(m[i+3]=='a'){
c=a;
}
else if(m[i+3]=='b'){
c=b;
}
else if(m[i+3]=='c'){
c=c;
}
else{
c= m[i+3]-'0';
}
}
}
System.out.println(a+" "+b+" "+c);
}
}