安卓的第一道编程题是求出怪兽的防御招式,可能带大招

笑哭,算法渣渣一枚,现在才完善,应该可以通过了

import java.util.Scanner;
public class Main{
     public static void main(String argv[]){
     Scanner scanner=new Scanner(System.in);
      String input=scanner.nextLine();
     System.out.println(getDefend(input));
}
public static String getDefend(String in) {
    StringBuilder stringBuilder = new StringBuilder();
    Node node = new Node();
    for (int i = 0; i < in.length(); i++) {
        char item = in.charAt(i);
        if (node.isEmpty()) {
            node.addItem(item);
        }
        if (!node.isEmpty()) {
            if (node.isBig()) {//是大招,放C
                stringBuilder.append('C');
            } else {//不是大招,放对应的小招
                stringBuilder.append(node.getDefends());
            }
            node.clear();
        } else {
            if (i == in.length() - 1) {
                stringBuilder.append(node.getDefends());
            }
        }
    }
    return stringBuilder.toString();
}
public static char getD(char in) {
    char out = '\0';
    switch (in) {
        case 'S':
            out = 'R';
            break;
        case 'K':
            out = 'B';
            break;
        case 'H':
            out = 'L';
            break;
    }
    return out;
}
private static class Node {
    public char one = '\0';
    public char two = '\0';
    public char three = '\0';

    public boolean isBig() {
        if (one != two && one != three && two != three) {
            return true;
        }
        return false;
    }

    public char[] getDefends() {
        char[] chars = new char[3];
        chars[0] = getD(one);
        chars[1] = getD(two);
        chars[2] = getD(three);
        return chars;
    }

    public void clear() {
        one = '\0';
        two = '\0';
        three = '\0';
    }

    public boolean isEmpty() {
        if ((one == '\0') || (two == '\0') || (three == '\0')) {
            return true;
        }
        return false;
    }

    public void addItem(char in) {
        if (one == '\0') {
            one = in;
        } else if (two == '\0') {
            two = in;
        } else if (three == '\0') {
            three = in;
        }
    }

}
}
#百度#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务