题解 | #查找兄弟单词#

查找兄弟单词

https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        String[] arr = new String[num];
        for (int i = 0; i < num; i++) {
            arr[i] = in.next();
        }
        String s = in.next();
        int key = in.nextInt();
        int k = 0;
        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < arr.length; i++) {
            if (check(arr[i], s)) {
                list.add(arr[i]);
                k++;
            }
        }
        sort(list);
        System.out.println(k);
        if (list.size() > key) {
            System.out.println(list.get(key - 1));
        }
    }

    private static void sort(ArrayList<String> list) {
        int size = list.size();
        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size - 1 - i; j++) {
                String s = list.get(j);
                String s1 = list.get(j + 1);
                if (s.compareTo(s1) > 0) {
                    list.set(j + 1, s);
                    list.set(j, s1);
                }
            }
        }
    }

    private static boolean check(String s, String s1) {
        if (s.equals(s1)) {
            return false;
        } else if (s.length() != s1.length()) {
            return false;
        } else {
            int length1 = s1.length();
            for (int i = 0; i < length1 - 1; i++) {
                char c = s1.charAt(i);
                s = s.replaceFirst(String.valueOf(c), "");
            }
            if (s.equals(String.valueOf(s1.charAt(length1 - 1)))) {
                return true;
            } else {
                return false;
            }
        }
    }
}

解题思路:

1, 第一步查找到所有的兄弟字符, 并进行记录

2, 第二步最兄弟字符集合进行排序

3, 最后进行输出

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务