OJ中------兄弟单词

来源:互联网 发布:lol淘宝权在哪里直播 编辑:程序博客网 时间:2024/05/05 03:10

描述

题目描述

 

知识点查找运行时间限制10M内存限制128输入

先输入字典中单词的个数,再输入n个单词作为字典单词。
输入一个单词,查找其在字典中兄弟单词的个数
再输入数字n

输出

根据输入,输出查找到的兄弟单词的个数

输出指定的第n个兄弟单词

样例输入3 abc bca cab abc 1样例输出2 bca


重点:兄弟单词在字典中的排序(Collections.sort(list)||Arrays.sort(arr[]))便可以解决。

import java.util.*;import java.util.Map.Entry;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);while(sc.hasNext()){    int n=sc.nextInt();    String[] ss=new String[n];    List<String> list=new ArrayList<>();    for(int i=0;i<n;i++){ss[i]=sc.next();}    String os=sc.next();    int index=sc.nextInt();    for(int i=0;i<ss.length;i++){    if(match(ss[i],os)){list.add(ss[i]);}    }        Collections.sort(list);    System.out.println(list.size());    System.out.println(list.get(index-1));   }sc.close();}private static boolean match(String s1,String s){if(s1.length()!=s.length()||s1.equals(s)){return false;} //int flag=0;else{char[]ch=s1.toCharArray();  Arrays.sort(ch);  String ss1=new String(ch); char[]ch2=s.toCharArray(); Arrays.sort(ch2);String ss2=new String(ch2); if(ss1.equals(ss2)){return true;}    return false;} }}

判断两个字符串是否包含相同的字符另一种方法


   private static boolean isBrother(String s1, String s2) {        int len1 = s1.length();        int len2 = s2.length();        if (len1 != len2 || s1.equals(s2))            return false;        else {            int hash[] = new int[26];            for (int i = 0; i < len1; i++)                hash[s1.charAt(i) - 'a']++;            for (int i = 0; i < len1; i++)                hash[s2.charAt(i) - 'a']--;            for (int i = 0; i < len1; i++)                if (hash[i] != 0)                    return false;            return true;        }    }



0 0