牛客笔试题----输入一个字符串,输出其中最长的数字串

一.题目描述:注意是字符串中求的数字串

输入一个字符串,输出其中最长的数字串思路:

  1. 定义一个 maxLength 变量来记录最长数字串
  2. 定义一个 count 变量来记录遍历过程中数字个数
  3. 如果 count > maxLength ,就说明 maxLength 不是最长的数字串,将 count 赋值给maxLength
  4. 定义一个 end 变量来记录数字串的最后一个数字,最后用subString()方法从字符串中截取出最长的数字串

代码展示:

package com;

import java.util.Scanner;

/**
 * package:com
 * Description:找出最长连续数字串
 * @date:2019/8/13
 * @Author:weiwei
 **/
public class GETLeastString {
    public static void main(String[] args) {
        /**
         * 定义一个maxLength记录最长数字串
         * 定义一个count记录遍历过程中数字个数
         * 如果count > maxLength ,说明maxLength不是最长的字符串,就将count的值复制给maxLength
         * 定义一个end变量来记录数字串的最后一个数字
         * 最后用subString()方法截取字符串
         */
        Scanner sc = new Scanner(System.in);
        String result = null;
        int count =0;
        int maxLength = 0;
        int end = 0;
        while(sc.hasNext()){
            result = sc.nextLine();
            for(int i = 0;i= '0' && result.charAt(i) <= '9'){
                    count++;
                    if(count > maxLength){
                        end = i;
                        maxLength = count;
                    }
                }else{
                    count = 0;
                }
            }
        }
        //字符串下标从0开始,end-maxLength+1就是数字串的开头,end+1是数字串的结尾
        System.out.println(result.substring(end - maxLength+1,end + 1));
    }
}

二.字符串由小写字母组成,求出现次数最多的字串,输出次数

输入:aba

输出:2

代码展示:

package com.lsz;

import java.util.*;

/**
 * package:com.lsz
 * Description:TODO
 *
 * @date:2019/8/30 0030
 * @Author:weiwei
 **/
public class hello {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        Set set = new HashSet();
        List list = new ArrayList();
        int len = str.length();
        for (int i = 0; i < len ; i++) {
            set.add(str.charAt(i)+"");
            list.add(str.charAt(i)+"");
        }
        Collections.sort(list);
        StringBuilder stringBuilder = new StringBuilder();
        for(String string : list){
            stringBuilder .append(string);
        }
        String orderString = stringBuilder.toString();
        int maxtimes = 0;
        String maxStr = "";
        Iterator iterator = set.iterator();

        Map result = new HashMap();
        List resultList = new ArrayList();
        while(iterator.hasNext()) {
            String input = iterator.next();
            int start = orderString.indexOf(input);
            int end = orderString.lastIndexOf(input);
            if ((end - start) > maxtimes) {
                maxtimes = end - start + 1;
                maxStr = input;
                result.put(input, maxtimes);
                resultList.add(input);
            } else if ((end - start) == maxtimes) {
                result.put(input, maxtimes);
                resultList.add(input);
            }
        }
        int index = 0;
        for (int i = 0; i < resultList.size() ; i++) {
            if(resultList.get(i).equals(maxStr)){
                index =i;
                break;
            }
        }
        for (int i = index; i < result.size() ; i++) {
            System.out.println(result.get(resultList.get(i))+"次");
        }
    }
}

 

你可能感兴趣的:(编程)