2 melissa Melissa_ 于 2016.01.22 13:11 提问

UVa-10815 Andy's First Dictionary

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18649
以下是我的java代码:

 package UVaOJ;

import java.util.Scanner;
import java.util.TreeSet;

public class Main {

    public static String filter(String s){
        StringBuilder sb = new StringBuilder();
        for(char c:s.toCharArray()){
            if(Character.isAlphabetic(c)) sb.append(c);
            else sb.append(" ");
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        TreeSet<String> ts = new TreeSet<String>();
        while(sc.hasNext()){
            String s = filter(sc.nextLine().toLowerCase());
            String[] str = s.split(" +");   
            for(String ss:str){
                if(ss != "") ts.add(ss);
            }
        }
        for(String s:ts){
            System.out.println(s);
        }
        sc.close();

    }

}

提交WA,求解~

7个回答

caozhy
caozhy   Ds   Rxr 2016.01.22 13:15

String[] str = s.split(" +");
->
String[] str = s.split("\s+");

caozhy
caozhy   Ds   Rxr 2016.01.22 13:15

String[] str = s.split("\\s+");

Melissa_
Melissa_ \\s+
接近 2 年之前 回复
Melissa_
Melissa_ \\\s+改了还是WA
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.22 13:26

TreeSet不会去重吧。你需要一个判断。

Melissa_
Melissa_ 去重的
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.22 13:39
 用Character.isLetter
呢

if(ss != "") ts.add(ss);
->
if(!ss.equals("")) ts.add(ss);

增加点日志输出看下
System.out.println("---filter" + sb.toString());
return sb.toString();

Melissa_
Melissa_   2016.01.22 13:19

\s+改了还是WA

Melissa_
Melissa_   2016.01.22 13:20

"\s+"改了还是WA

Melissa_
Melissa_   2016.01.22 13:20

噗。。。\\s+改了还是WA

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!