题目:给定字符串,求出现次数最多的那个字母及次数,如有多个 重复则都输出。

eg,String data ="aaavzadfsdfsdhshdWashfasdf";

思路:

1.引入TreeSet,通过集合快速找到所有出现的字符串;

2,引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串;

3,通过String api中的基本方法 indeOf() lastIndexOf()来计算TreeSet中每个字符串的最大值;

4,如果出现相同的则把相同的都记录在一个列表中,

5,记录第一个出现次数最多的字符(为了计算多个字符串相同的情况)

6,计算最大字符串列表中哪些才是真正出现次数最多的。

 1 import java.util.*;
2
3 public class MaxStringNumber {
4
5 public static void main(String[] args) throws Exception{
6 String input ="aaavzadfsdfsdhshdWashfasdf";
7 new MaxStringNumber().doString(input);
8
9 }
10
11 public void doString(String input) {
12 // TODO Auto-generated method stub
13 char [] chars = input.toCharArray();
14 ArrayList lists = new ArrayList();
15 TreeSet set = new TreeSet();
16 for(int i = 0;i<chars.length;i++){
17 lists.add(String.valueOf(chars[i]));
18 set.add(String.valueOf(chars[i]));
19 }
20
21 System.out.println(set);
22 Collections.sort(lists);
23 System.out.println(lists);
24
25 StringBuffer sb = new StringBuffer();
26 for(int i=0;i<lists.size();i++){
27 sb.append(lists.get(i));
28 }
29
30 input = sb.toString();
31 System.out.println(input);
32 int max = 0;
33 String maxString = "";
34 ArrayList maxlist =new ArrayList();
35
36 Iterator its = set.iterator();
37 while(its.hasNext()){
38 String os = (String)its.next();
39 int begin = input.indexOf(os);
40 int end = input.lastIndexOf(os);
41 int value = end -begin +1;
42 if(value >max){
43 max =value;
44 maxString = os;
45 maxlist.add(os);
46 }else if(value == max){
47 maxlist.add(os);
48 }
49 }
50 int index = 0;
51 for(int i= 0;i<maxlist.size();i++){
52 if(maxlist.get(i).equals(maxString)){
53 index =i;
54 break;
55 }
56 }
57
58 System.out.println("出现最多的字符分别为:");
59 for(int i=index;i<maxlist.size();i++){
60 System.out.println(maxlist.get(i)+" ");
61 }
62 System.out.println();
63
64 System.out.println("出现最多的次数为: "+max);
65
66
67 }
68 }

Java面试基础--(出现次数最多的字符串)的更多相关文章

  1. javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数

    javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...

  2. 我的Java开发学习之旅------>求字符串中出现次数最多的字符串以及出现的次数

    金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数 ...

  3. JAVA面试基础

    JAVA相关基础知识1.面向对象的特征有哪些方面 ?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂 ...

  4. SDUT OJ 2892 A (字典树问题-输出出现次数最多的字符串的出现次数,60ms卡时间,指针+最后运行完释放内存)

    A Time Limit: 60ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 给出n(1<= n && n <= 2*10^6)个字 ...

  5. java 返回输入中出现次数最多的字符串

    举例输入: abc abc de de de fghi fghi 应该返回: de 代码: static List<String> func(String str) { String[] ...

  6. 编写一个应用程序,利用数组或者集合, 求出"HELLO",“JAVA”,“PROGRAM”,“EXCEPTION”四个字符串的平均长度以及字符出现重复次数最多的字符串。

    public class Number { public static void main(String[] args) { String[] arr = { "HELLO", & ...

  7. Java 面试基础总结(一)

    1.九种基本数据类型的大小以及它们的封装类 java提供的九种基本数据类型:boolean.byte(1).char(2).short(2).int(4).long(8).float(4).doubl ...

  8. java面试基础题(三)

    程序员面试之九阴真经 谈谈final, finally, finalize的区别: final:::修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此 ...

  9. Java面试基础部分合集

    写在前面:这篇文章对于在Java方面已经很牛逼的大手,就没必要看了,因为对于你们来说,这tm简直太简单了.... 面试我们都经历过,你真的懂面试吗?针对面试我只想说一点,面试的目的不是让考官知道你怎么 ...

随机推荐

  1. k8s入坑之路(8)kube-proxy详解

    kube-proxy 每台机器上都运行一个 kube-proxy 服务,它监听 API server 中 service 和 endpoint 的变化情况,并通过 iptables 等来为服务配置负载 ...

  2. 在 macOS 上运行无限许可的 Nessus 10

    请访问原文链接:https://sysin.org/blog/nessus-unlimited-on-macos/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页: ...

  3. 图文详解 Java 字节码,让你秒懂全过程

    原文地址:https://blog.csdn.net/AliceSmith1/article/details/80051153 即便对那些有经验的Java开发人员来说,阅读已编译的Java字节码也很乏 ...

  4. SVGO: Node.js 开发的 SVG 矢量图优化工具(svg压缩工具)

    SVG图片压缩 这是个通过借助npm包的一种方式去压缩svg的图片,由于阿里的图库自己创建的图标有大小的限制,当我们想要自己用自己的图标的时候就可以使用这种方式去完成对svg的图片压缩. 1.下载no ...

  5. Python 函数 参数传递

    参数传递    在 python 中,类型属于对象,变量是没有类型的:        a=[1,2,3]        a="Runoob"    以上代码中,[1,2,3] 是 ...

  6. 教你用SQL进行数据分析

    摘要:采用 SQL 作为数据查询和分析的入口是一种数据全栈的思路. 本文分享自华为云社区<如何使用 SQL 对数据进行分析?>,作者:zuozewei . 前言 我们通过 OLTP(联机事 ...

  7. 接口返回图片,前端生成临时url实现展示、下载效果

    请求一个后端接口 返回一张图片(打印后发现是二进制流) 瞬间不开心了(为什么不能后端处理好再让前端调用呢) 不过丝毫不慌好吧 先说处理逻辑:首先要将获取到的数据转换,这边选择以blob形式进行转换 主 ...

  8. [cf1305G]Kuroni and Antihype

    对整个过程构造一张有向图,其中$(x,y)\in E$当且仅当$x$把$y$加入,且边权为$a_{x}$ 显然这是一棵外向树森林,并再做如下两个构造: 1.新建一个点$a_{0}=0$,将其向所有入度 ...

  9. SpringCloud升级之路2020.0.x版-41. SpringCloudGateway 基本流程讲解(2)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们继续分析上一节提到的 WebHandler,经过将请求封装成 ServerWebExc ...

  10. 常见HTTP请求错误码

    一些常见的状态码为: 200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码  说明100 ...