查找兄弟单词
| 描述 |
题目描述
|
|---|---|
| 知识点 | 查找 |
| 运行时间限制 | 10M |
| 内存限制 | 128 |
| 输入 |
先输入字典中单词的个数,再输入n个单词作为字典单词。 |
| 输出 |
根据输入,输出查找到的兄弟单词的个数 输出指定的第n个兄弟单词 |
| 样例输入 | 3 abc bca cab abc 1 |
| 样例输出 | 2 bca |
package com.oj5;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class Oj {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
in.nextLine();
String[] data = new String[num];
for(int i = 0;i < num; i++)
data[i] = in.nextLine();
String input = in.nextLine();
int inputNum = in.nextInt();
int count = 0;
Set<String> set = new TreeSet<String>();
for(int i = 0;i < num; i++)
if(isBrother(data[i],input)){
count++;
set.add(data[i]);
}
System.out.println(count);
Iterator<String> iter = set.iterator();
int k = 0;
while(iter.hasNext()){
k++;
String value = iter.next();
if(k==inputNum)
System.out.println(value);
}
}
private static boolean isBrother(String src, String input) {
//System.out.println("src: "+src+" "+input);
if(src.equals(input))
return false;
else if(src.length()!=input.length()){
return false;
}else{
Map<Character,Integer> mapSrc = new TreeMap<Character,Integer>();
Map<Character,Integer> mapInput = new TreeMap<Character,Integer>();
for(int i = 0;i < src.length(); i++)
if(mapSrc.containsKey(src.charAt(i))){
mapSrc.put(src.charAt(i),1+mapSrc.get(src.charAt(i)));
}else{
mapSrc.put(src.charAt(i), 1);
}
for(int i = 0;i < input.length(); i++)
if(mapInput.containsKey(input.charAt(i))){
mapInput.put(input.charAt(i), 1+mapInput.get(input.charAt(i)));
}else{
mapInput.put(input.charAt(i), 1);
}
//System.out.println("hi1: "+src);
for(Map.Entry<Character, Integer> srcEntry:mapSrc.entrySet()){
Character key = srcEntry.getKey();
int value2;
try{
value2 = mapInput.get(key);
}catch(Exception e){
return false;
}
if(value2!=srcEntry.getValue())
return false;
}
//System.out.println("hi2: "+src);
for(Map.Entry<Character, Integer> inputEntry:mapInput.entrySet()){
Character key2 = inputEntry.getKey();
int value;
try{
value = mapSrc.get(key2);
}catch(Exception e){
return false;
}
//System.out.println(key2+" "+value);
if(value!=inputEntry.getValue())
return false;
}
//System.out.println("hi3: "+src);
return true;
}
}
}
态度决定高度,细节决定成败,




浙公网安备 33010602011771号