【华为机试035】查找兄弟单词

题目描述:

输入描述:

 
 

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

输出描述:

 
 

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

Java实现:

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            String[] dic = new String[n];
            for (int i = 0; i < n; i++) {
                dic[i] = sc.next();
            }
            Arrays.sort(dic);
            String word = sc.next();
            int k = sc.nextInt();
            int count = 0;
            String broK = "";
            for (int i = 0; i < n; i++) {
                if (dic[i].equals(word))
                    continue;
                else {
                    char[] chars = dic[i].toCharArray();
                    char[] chars1 = word.toCharArray();
                    Arrays.sort(chars);
                    Arrays.sort(chars1);
                    if (Arrays.equals(chars, chars1)) {
                        count++;
                        k--;
                        if (k == 0)
                            broK = dic[i];
                    }
                }
            }
            System.out.print(count);
            System.out.println();
            if (k <= 0)
                System.out.println(broK);
        }
    }
}

知识点:

  • 比较两个数组是否相等Arrays.equals()
  • 需要先将输入的字符串数组按照字典顺序进行排序,输入给出的序号是按字典顺序排序后的序号
  • 需要考虑到k不存在的情况

猜你喜欢

转载自blog.csdn.net/heyiamcoming/article/details/80880966