题解 | #查找兄弟单词#

查找兄弟单词

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

import java.util.*;

/**
 * @authore:
 * @data: 2021/10/13
 * @Description:
 */
/**
 * 功能描述: <br>
 * @Param: 输入:
 * 6 cab ad abcd cba abc bca abc 1
 * 复制
 * 输出:
 * 3
 * bca
 * 复制
 * 说明:
 * abc的兄弟单词有cab cba bca,所以输出3
 * 经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca
 * @Return:
 * @Author: guokun
 * @Date: 2021/10/13 14:18
 */
public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()){
            String[] ss = scanner.nextLine().split(" ");
            Integer a = Integer.parseInt(ss[0]);
            String x = ss[ss.length-2];
            Integer k = Integer.parseInt(ss[ss.length-1]);
            List<String> list = new ArrayList<>();

            for (int i = 1; i <=a ; i++) {
                if (isBrother(x,ss[i])){
                        list.add(ss[i]);
                }
            }
            int size = list.size();
            System.out.println(size);
            if (size>=k){
                Collections.sort(list);
                System.out.println(list.get(k-1));
            }

        }
    }
        public static boolean isBrother(String x,String y){
            if (x.length()!=y.length()||y.equals(x)){
                return false;
            }
            char[] s = x.toCharArray();
            char[] j= y.toCharArray();
            Arrays.sort(s);
            Arrays.sort(j);
            return new String(s).equals(new String(j));


        }
}

全部评论
相对暴力一点的isBrother()方法 public static boolean isBrother(String x, String y) { if (x.length() != y.length() || x.equals(y)) { return false; } char[] chars = x.toCharArray(); char[] chars1 = y.toCharArray(); for (char c : chars) { for (int i = 0; i < chars1.length; i++) { if (c == chars1[i]) { chars1[i] = '&'; } if (i == chars1.length - 1 && chars1[i] != '&') { return false; } } } return true; }
1
送花
回复
分享
发布于 2022-08-18 16:24 广东
重复没考虑吧
点赞
送花
回复
分享
发布于 2022-07-10 23:02
秋招专场
校招火热招聘中
官网直投
这个方法有一个用例通不过
2
送花
回复
分享
发布于 2022-06-11 17:09
sort()用得真是太妙了,看完恍然大悟的感觉
2
送花
回复
分享
发布于 2022-06-26 12:55
这个 在测试用例为797的时候 通过不了 单词兄弟个数对了 但是没有排序
2
送花
回复
分享
发布于 2023-02-13 22:41 广东
秒啊 能看懂就是写不出来
点赞
送花
回复
分享
发布于 2022-06-09 18:31
爆赞
点赞
送花
回复
分享
发布于 2022-06-24 17:49
喵啊
点赞
送花
回复
分享
发布于 2022-07-06 00:16
这个巧妙,以sort代替复杂的HashMap
点赞
送花
回复
分享
发布于 2022-07-08 14:58
大佬,太牛了!
点赞
送花
回复
分享
发布于 2022-08-12 11:36
妙啊。。我还傻了吧唧遍历重组
点赞
送花
回复
分享
发布于 2022-09-05 17:20 河北
存在重复的可能,不应该用list.add()方法,而应该用map.put方法
点赞
送花
回复
分享
发布于 2022-09-19 12:20 四川
秒啊
点赞
送花
回复
分享
发布于 2022-09-30 18:44 河南
这个排序真的很佩服。我还在想怎么实现全排列。
点赞
送花
回复
分享
发布于 2023-02-14 17:32 北京
这个sort真的太美了
点赞
送花
回复
分享
发布于 2023-03-06 15:59 江苏
list没排序,应该不对
点赞
送花
回复
分享
发布于 05-04 23:42 浙江

相关推荐

136 22 评论
分享
牛客网
牛客企业服务