查找兄弟单词——编程题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

输入描述
在这里插入图片描述

输出描述

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

示例:

在这里插入图片描述

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

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;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章