zoukankan      html  css  js  c++  java
  • Java面试基础--(出现次数最多的字符串)

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

    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 }
  • 相关阅读:
    hdoj_2553N皇后问题
    poj_2676
    poj_1836Alignment
    PKU ACM 搜索总结
    POJ_1426Find The Multiple
    jQuery Ajax之$.get()方法和$.post()方法
    jQuery Ajax之$.get()方法和$.post()方法
    使用jquery简化ajax开发
    jquery ajax全解析
    jQuery的一些特性和用法:
  • 原文地址:https://www.cnblogs.com/happinessqi/p/3434497.html
Copyright © 2011-2022 走看看