演示错误与UVA问题字谜

时间:2019-07-22 20:18:08

标签: java algorithm adhoc uva

我陷入了这个UVA问题。我已经用uDebug输出测试了我的输出。它向我展示了呜呼!您的输出与接受的输出相同!对于所有三个测试用例。但是我仍然出现演示错误。

问题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=395

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Anagrams {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int testCase = Integer.parseInt(br.readLine());
        br.readLine();

        for(int i=1; i<=testCase; i++) {

            ArrayList<String> list = new ArrayList<>();
            ArrayList<String> lowerCaseList = new ArrayList<>();
            String line;
            while ( (line=br.readLine()) != null && !line.equals("") ){
                list.add(line.trim());
                lowerCaseList.add(sort(replaceSpace(line)));
            }

            int size = list.size();
            ArrayList<String> outputList = new ArrayList<>();

            for(int listSize=0; listSize<size; listSize++) {

                String originalWord = list.get(listSize);
                String sortedString = sort(replaceSpace(originalWord));

                for(int j=listSize+1; j<size; j++) {
                    String wordToCompare = lowerCaseList.get(j);
                    if(wordToCompare.equals(sortedString)){
                        String currentWord = list.get(j);
                        String phrase;
                        if(originalWord.compareTo(currentWord) > 0) {
                            phrase = currentWord+" = "+originalWord;
                        } else if (originalWord.compareTo(currentWord) < 0) {
                            phrase = originalWord+" = "+currentWord;
                        } else {
                            phrase = originalWord+" = "+currentWord;
                        }

                        outputList.add(phrase);
                    }
                }
            }

            Collections.sort(outputList);
            int outputListSize = outputList.size();
            for(int x=0; x<outputListSize; x++) {
                System.out.print(outputList.get(x)+"\n");
            }

            if(i!=testCase) {
                System.out.println();
            }
        }

    }

    private static String replaceSpace(String line) {
        return line.replaceAll("\\s+","");
    }

    private static String sort(String word) {
        char tempArray[] = word.toCharArray();
        Arrays.sort(tempArray);
        return new String(tempArray);
    }

}

0 个答案:

没有答案