JAVA面试题笔试题

Wesley13
• 阅读 578
  • 面试题或者笔试题常问的算法

    import java.util.ArrayList; import java.util.Collections; import java.util.Comparator;

    import org.apache.commons.lang.StringUtils;

    /*

    • 【Author】 爱吃早餐的程序员
    • 【Time】2020年11月23日 下午2:28:17
    • 【Function】查找一个字符串不重复最长的串

    */ public class Test5 {

    public static void main(String[] args) {
    
    
    
        String string = "suhdfuisehwerqiowo";
        String findNotDupLong = findNotDupLong(string);
        System.err.println("不重复最长的串:"+findNotDupLong);
    }
    
    private static String findNotDupLong(String string) {
    
    
    
        
        if (StringUtils.isBlank(string)) {
    
    
    
            return "没有找到";
        }
        
        ArrayList<String> arrayList = new ArrayList<String>();// 用于存入符合条件的串
        String[] split = string.split("");
        for (int i = 0; i < split.length; i++) {
    
    
    
            String begin = split[i];
            for (int j = i; j < split.length; j++) {
    
    
    
                if (begin.equals(split[j])) {
    
    
    
                    if (StringUtils.isNotBlank(string.substring(i, j))) {
    
    
    
                        arrayList.add(string.substring(i, j));
                    }
                }
            }
        }
        Collections.sort(arrayList, new Comparator<String>() {
    
    
    
            @Override
            public int compare(String o1, String o2) {
    
    
    
                if (o1.length()>o2.length()) {
    
    
    
                    return -1;
                }else {
    
    
    
                    return 1;
                }
            }
        });
        
        return arrayList.size()>0?arrayList.get(0):"没有找到";
            
    }
    

    }

  • 大家有什么好的方法没

  • 后来测试有错 已更新方法

    private static String findNotDupLong(String string) {

        if (StringUtils.isBlank(string)) {
    
    
    
            return "没有找到";
        }
        ArrayList<String> arrayList = new ArrayList<String>();// 用于存入符合条件的串
        String[] split = string.split("");
        for (int i = 0; i < split.length; i++) {
    
    
    
            for (int j = i; j < string.length(); j++) {
    
    
    
                if (string.substring(i,j).contains(string.charAt(j)+"")) {
    
    
    
                    System.err.println(string.substring(i,j)+"==="+string.charAt(j)+"");
                    arrayList.add(string.substring(i,j));
                    i++;
                    j=i;
                }
            }
        }
        Collections.sort(arrayList, new Comparator<String>() {
    
    
    
            @Override
            public int compare(String o1, String o2) {
    
    
    
                if (o1.length()>o2.length()) {
    
    
    
                    return -1;
                }else if (o1.length()< o2.length()) {
    
    
    
                    return 1;
                }else {
    
    
    
                    return 0;
                }
            }
        });
        return arrayList.size()>0?arrayList.get(0):"没有找到";
    }
    

本文分享 CSDN - 爱吃早餐的程序员。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
作为一个码农终于把这些笔记看懂了,牛皮轰轰
Spring面试高频问题SpringMVC面试高频问题MyBatis面试高频问题SpringBoot面试高频题SpringCloud面试高频问题Redis高级面试题Dubbo高频常问面试问题Java虚拟机(JVM)MySQL数据库高频面试问题Java高频面试专题合集解析:当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,在这也是
Android程序员面试必备的知识点,深入分析
由于涉及到的面试题较多导致篇幅较长,我根据这些面试题所涉及到的常问范围总结了并做出了一份学习进阶路线图​​​​​​​及面试题答案免费分享给大家,文末有免费领取方式!View面试专题1.View的滑动方式2.View的事件分发机制3.View的加载流程4.View的measurelayout和draw流程5.自定义view需要注意的
Wesley13 Wesley13
3年前
Java面试集锦
各位学习Java的同学看过来了,以下是CSDN作者「ThinkWon」总结的面试题。希望对在准备跳槽或者找工作的同学有点帮助。这一波面试题总体来说基本上能够回答面试官的70%问题。虽然有些小节不够完善的,只能靠你自己多面试多总结了。序号内容链接地址1Java基础知识面试题(2020最新版)https://thinkwon.bl
Stella981 Stella981
3年前
2020面试整理【java】
前言:java框架面试题总结2020年4月1日spring面试题1.你对spring的理解?与springmvc和springboot的区别?(经常被问到)Spring是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。
Wesley13 Wesley13
3年前
Java 208 道面试题:Java 基础模块答案
目前市面上的面试题存在两大问题:第一,题目太旧好久没有更新了,还都停留在2010年之前的状态;第二,近几年JDK更新和发布都很快,Java的用法也变了不少,加上Java技术栈也加入了很多新的框架,比如SpringBoot、SpringCloud等,但类似的面试题却极少。相比与这些问题,我的这208道面试题,包含了以下4个特点
Wesley13 Wesley13
3年前
2020年1
前言2020年一半儿快要过去了,总结了上半年各类Java面试题,初中级和中高级都有,包括JavaOOP面试题、Java集合/泛型面试题、Java异常面试题、Java种的IO与NIO面试题、Java反射面试题、Java序列化面试题、Java注解面试题、多线程与并发面试题、JVM面试题、MySQL面试题、Redis面试题、Memcached面试题、Mo
Wesley13 Wesley13
3年前
JAVA面试题汇总
没有什么套路,就是直接上干货!!!最新Java面试题汇总整理连答案一块儿分享给大家,希望对大家有帮助~之后还会推出Java面试题系列文章,敬请关注!按照技术模块:Java热点技术、多线程、微服务、JVM、Redis、消息队列、SQL相关的面试题。不要走开,稍后更精彩!1、面向对象的特点有哪些?抽象、继承、封装、多态。2、接口和抽象类
可莉 可莉
3年前
2020面试整理【java】
前言:java框架面试题总结2020年4月1日spring面试题1.你对spring的理解?与springmvc和springboot的区别?(经常被问到)Spring是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。
Java HashMap 的工作原理详解
JavaHashMap的工作原理详解HashMap的工作原理是近年来常见的java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题