华为机试-查找兄弟单词
2017-03-04 15:00
351 查看
题目:
输入描述:
先输入字典中单词的个数,再输入n个单词作为字典单词。
输入一个单词,查找其在字典中兄弟单词的个数
再输入数字n
输出描述:
根据输入,输出查找到的兄弟单词的个数
输入例子:
3 abc bca cab abc 1
输出例子:
2 bca
思路
判断是不是兄弟单词如果是保存在list中,然后对list中的单词进行排序。判断是不是兄弟单词时用将两个字符串分别转化为字节数组排序然后比较对应的单词是否相同。
代码
输入描述:
先输入字典中单词的个数,再输入n个单词作为字典单词。
输入一个单词,查找其在字典中兄弟单词的个数
再输入数字n
输出描述:
根据输入,输出查找到的兄弟单词的个数
输入例子:
3 abc bca cab abc 1
输出例子:
2 bca
思路
判断是不是兄弟单词如果是保存在list中,然后对list中的单词进行排序。判断是不是兄弟单词时用将两个字符串分别转化为字节数组排序然后比较对应的单词是否相同。
代码
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class FindBrotherWord { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); while(sc.hasNext()) { int n=sc.nextInt(); String s[]=new String ; for(int i=0;i<n;i++) { s[i]=sc.next(); } String word=sc.next(); int index=sc.nextInt(); findBrotherWord(word,s,n,index); } } public static void findBrotherWord(String word,String s[],int n,int index) { int len=n,count=0; ArrayList<String> list=new ArrayList<String>(); for(int i=0;i<len;i++) { if(isBrother(word,s[i])) { count++; list.add(s[i]); } } Collections.sort(list); if(1<=index&&index<=count) { System.out.println(count+" "); System.out.println(list.get(index-1)); } } public static boolean isBrother(String word,String s) { if(word.equals(s)||(word.length()!=s.length())) return false; char words[]=word.toCharArray(); Arrays.sort(words); char ss[]=s.toCharArray(); Arrays.sort(ss); for(int i=0;i<words.length;i++) { if(words[i]!=ss[i]) return false; } System.out.println(s); return true; } }
相关文章推荐
- 华为机试——查找兄弟单词
- 华为机试---查找兄弟单词
- 华为机试 单词查找、排序、去重
- 【华为OJ】【073-查找兄弟单词】
- 华为OJ-查找兄弟单词
- 华为oj 查找兄弟单词
- 华为OJ:查找兄弟单词
- 【华为OJ】查找兄弟单词
- 华为OJ——查找兄弟单词
- 华为OJ——查找兄弟单词
- 【华为OJ】查找兄弟单词(未通过)
- 华为OJ中级题-查找兄弟单词
- 华为OJ(查找兄弟单词)
- 华为机试在线训练-牛客网(17)查找兄弟单词
- 华为练习2 查找兄弟单词
- 华为机试: 查找组成一个偶数最接近的两个素数、自守数
- 字典中查找兄弟词,如 army 与 mary为兄弟单词(2012.5.6百度实习生笔试)
- 【华为机试】字符串最后一个单词的长度
- 华为机试—单词计数
- 【华为机试】字串的连接最长路径查找