欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查找兄弟单词——编程题

程序员文章站 2024-03-25 18:34:10
...

查找兄弟单词——编程题

查找兄弟单词——编程题

查找兄弟单词——编程题

输入描述
查找兄弟单词——编程题

输出描述

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

示例:

查找兄弟单词——编程题

题目描述太过于复杂了,直接看输入输出案例比较好理解。

import java.util.Arrays;
import java.util.Scanner;
//寻找兄弟单词
public class SearchBrotherwords {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
            int n = sc.nextInt();
            String[] str = new String[n];
            String result = "";
            for(int i = 0;i< n;i++){
                str[i] = sc.next();
            }
            //将输入的字符串存到字符串数组
            Arrays.sort(str);
            //将字符数组用Arrays.sort()方法 排序后存放 便于比较
            String target = sc.next();
            //输入目标单词
            int k = sc.nextInt();
            //要输出第k个兄弟单词
            int count = 0;//计算兄弟单词
            for (int i  = 0;i < n;i++){
                if(Isfriend(target,str[i])){
                    //调用方法进行比较,如果是兄弟单词,计数器+1
                    count += 1;
                    if(k == count){
                        //+到第k个兄弟单词时 直接将兄弟单词传给result,便于后面输出
                        result = str[i];
                    }
                }
            }
            System.out.println(count+" ");
            //输出兄弟单词数目
            if(count >= k){
                //判断输出第k个单词
                System.out.println(result);
            }
        }
    }
    //判断是否是兄弟单词的方法
    private static boolean Isfriend(String S1, String S2){
        boolean b = false;
        if(S1.length() != S2.length()){
            //长度不相等返回false
            b = false;
        }
        if(S1.equals(S2)){
            //equals判断不相等 返回 false
            b = false;
        }else {
            if(sort(S1).equals(sort(S2))){
                //排序后相等返回true  这里用了自己定义的sort排序方法
                b = true;
            }
        }
        return b;
    }
    
    //自己定义的排序方法
    private static String sort(String str){
        char[] s = str.toCharArray();
        String result = "";
        Arrays.sort(s);
        for(int i = 0;i<s.length;i++){
            result += s[i];
        }
        return result;
    }
}

相关标签: 查找兄弟单词