自学内容网 自学内容网

牛客周赛76B:JAVA

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

给定一个长度为 nnn ,仅包含小写字母的字符串 sss 。

请你构造出一个非空字符串 ttt ,使得它在 sss 中作为子串出现的次数最多。

子串是指,从原字符串中连续截取一些字符,得到的新字符串。

输入描述:

第一行有一个整数 n ( 1≤n≤105 )n\ (\ 1 \leq n \leq 10^5\ )n ( 1≤n≤105 ) 。
第二行有一个字符串 sss ,字符串仅包含小写字母。

输出描述:

 

输出一个字符串,代表构造得到的字符串 ttt 。

如果有多个字符串符合条件,输出任意一个即可。

示例1

输入

5
dbace

输出

ac

说明

输出 bababa 或者 dbacedbacedbace 也是可以的。
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 创建一个Scanner对象用于读取输入
        Scanner sc = new Scanner(System.in);
        
        // 读取一个整数n(虽然在后续代码中没有使用到)
        int n = sc.nextInt();
        
        // 读取换行符,以便正确读取下一行字符串
        sc.nextLine();
        
        // 读取字符串s
        String s = sc.nextLine();
        
        // 关闭Scanner对象
        sc.close();
        
        // 创建一个长度为26的数组c,用于记录每个字母出现的次数
        int[] c = new int[26];
        
        // 遍历字符串s中的每个字符,并统计每个字母的出现次数
        for (char ar : s.toCharArray()) {
            c[ar - 'a']++;
        }
        
        // 初始化max为'a',表示当前出现次数最多的字母
        char max = 'a';
        
        // 从第二个字母开始遍历数组c,找到出现次数最多的字母
        for (int i = 1; i < 26; i++) {
            if (c[i] > c[max - 'a']) {
                max = (char) ('a' + i);
            }
        }
        
        // 将结果转换为字符串并输出
        String t = String.valueOf(max);
        System.out.println(t);
    }
}


原文地址:https://blog.csdn.net/2302_81104841/article/details/145240739

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!