**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
5天前关门了。
改进这个问题
我不断地从kattis那里得到错误的答案,尽管这个程序通过了我所有的测试。如果有人能运行我的代码,找出我哪里做错了,我会很感激的。谢谢您!
下面是问题的链接:“我为一只眼睛”
这是我的密码:
import java.util.Scanner;
public class Eye {
String[] c = {"@","&","1", "1","2", "2", "2", "4", "4", "b", "b", "b", "c", "c", "i","o", "o", "r","u","y"};
String[] sub = {"at", "and","one","won","too", "to", "two","for", "four", "bea", "bee", "be", "sea", "see","eye", "oh", "owe", "are","you","why"};
public boolean check(String s) {
for(int j = 0; j < 20; j++) {
if(s.toLowerCase().equals(sub[j])) {
return true;
}
}
return false;
}
public boolean checki(String s) {
for(int j = 0; j < 20; j++) {
if(s.toLowerCase().contains(sub[j])) {
return true;
}
}
return false;
}
public String title(String s) {
StringBuffer temp = new StringBuffer(s.length());
String[] temp2 = s.split("");
for(int k = 0; k < s.length(); k++) {
if(k == 0) {
temp.append(temp2[k].toUpperCase());
} else {
temp.append(temp2[k]);
}
}
return temp.toString();
}
public boolean isUpperCase(String s) {
if(s.codePointAt(0) > 64 && s.codePointAt(0) < 92) {
return true;
}
return false;
}
public String[] have(String s) {
String[] sa = s.split("");
String oc = "";
for(int i = 0; i < s.length(); i++) {
String t = "";
for(int j = i; j < s.length(); j++) {
t += sa[j];
for(int k = 0; k < 20; k++) {
if(t.toLowerCase().equals(sub[k])) {
oc += t + " ";
}
}
}
}
return oc.split(" ");
}
public String replace(String s) {
String[] sA = s.split(" ");
String result = "";
for(int i = 0; i < sA.length; i++) {
if(check(sA[i])) {
for(int j = 0; j < 20; j++) {
if(sA[i].toLowerCase().equals(sub[j])) {
if(j > 8 && isUpperCase(sA[i])) {
result += title(c[j]);
break;
} else {
result += c[j];
break;
}
}
}
} else if(checki(sA[i])) {
for(int j = 0; j < 20; j++) {
if(sA[i].toLowerCase().contains(sub[j])) {
if(j > 8) {
String[] hA = have(sA[i]);
for (String b : hA) {
if(b.toLowerCase().equals(sub[j]) && isUpperCase(b)) {
sA[i] = sA[i].replaceAll(title(sub[j]), title(c[j]));
} else {
sA[i] = sA[i].replaceAll(sub[j], c[j]);
}
}
} else {
if(isUpperCase(sA[i])) {
sA[i] = title(sA[i].toLowerCase().replace(sub[j], c[j]));
} else {
sA[i] = sA[i].toLowerCase().replace(sub[j], c[j]);
}
}
}
}
result += sA[i];
} else {
result += sA[i];
}
if(i < (sA.length - 1)) {
result += " ";
}
}
return result;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.nextLine();
String[] sen = new String[n];
for(int i = 0; i < n; i++) {
sen[i] = in.nextLine();
}
in.close();
Eye e = new Eye();
for(int i = 0; i < n; i++) {
System.out.println(e.replace(sen[i]));
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!