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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Andy's First Dictionary(uva 10815) set用法
Andy's First Dictionary Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVA. Original ID: 10815 64-bit integer IO format: %lld      Java class name: Main Prev
小白书训练-Andy's First Dictionary
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756 题意:给你一段文字,把所有的单词挑出来,然后排序打印、 首先是挑出来,用指针加数组轻轻松解决问题,然后排序,因为用数组不能快拍,便用了string,先转换为string然后一个快拍。
Uva-10815 Andy's First Dictionary
本题的意思大概是安迪想要把她新学的句子按照字典序把所有的单词都排列输出一遍,正好set可以自动排序,只需要字符串流读取所有单词,最后借助set自动排序遍历输出就ok帮助小仙女安迪解决问题啦。 ac代码: #include using namespace std; int main() { set dict; string s, buf; while(cin>>s)
UVA-10815 Andy's First Dictionary
2016-07-13 UVA - 10815 Andy's First Dictionary 题目大意:输入文章,将文章中的单词按字典序排列输出。 解题思路:储存每个单词然后排序。时间复杂度比较大,容易 TLE,要优化算法,最后用了qsort才AC。 #include #include #include #include using namespace std;
UVa-10815 - Andy's First Dictionary
算是抄袭代码#include<iostream> #include<set> #include<string> #include<sstream> using namespace std; set<string> dict; int main() { string s,buf; while(cin>>s) { int l=s.size(); f
UVa-10815 - Andy's First Dictionary
题目大意: 读入一段文章,不区分大写写,最后把所有的单词按小写字典序输出,。 注:相同的单词只输出一遍。 #include #include #include #include #include #include using namespace std; int main() { char arr[20]; int i = 0; char c; set str; set::it
uva-10815 - Andy's First Dictionary
题意:给你数个字符串,要你把字符串中的所以出现单词,不重复的按字典序输出。 思路:切割字符串,然后使用set存储单词 package test; import java.util.Scanner; import java.util.TreeSet; public class Test{ static TreeSet tree = new TreeSet(); public s
UVA-10815 - Andy's First Dictionary
UVA-10815 - Andy’s First Dictionary 题目大意:把一篇文章中所有的单词按字典序排列 解题思路:读取单词后排序,去除重复的单词···题目没看好,最多有5000个词但是词超过5000个,开的数组不过打Runtime-error,排序也不能用O(n^2)的,超时,最后用qsort= =过了
UVa 10815 - Andy's First Dictionary【排序+去重】
原题网址: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756 题意: 给出一篇文章,让你按字典序输出其中不同的单词 一份是书上的代码,感觉模块化非常好,不过自己不太喜欢,然后自己写自己的代码和方法 #include usi
UVA10815-5.3-Andy's First Dictionary(集合set的用法)
UVA10815-5.3-Andy’s First Dictionary(集合set的用法) 题目描述: 链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=835&problem=1756&mosmsg=Submission+received+