【面试题01】找出数组中的最长前缀

news2024/11/25 22:26:15

题目1:如图,finally中的输出语句会执行吗?(另外自己去考虑虚拟机退出、catch中抛异常、try中抛异常、守护线程等相关问题)

题目2:Byte+"hello"报错吗?Byte+7报错吗?
不会报错. 除了null以外,字符串与任何值相加都是将别的值转为字符串,然后相加, null没有toString函数,因此不可以!
在这里插入图片描述

题目3:找出数组中的最长前缀
输入String[] arr,[“flow”, “flower”, “flag”]
输出"fl"

算法代码如下:

public static String getMaxLengthPrefix(String[] arr) {
        // 空则返回空. 应对arr = []或者arr = null情况
        if (arr == null || arr.length == 0) {
            return "";
        }

        // 空字符串数组则返回"", 应对最短字符串为空情况. arr = ["flow", "", "floor"], 这种也会返回""
        for (String s : arr) {
            if (s == null || s.length() == 0) {
                return "";
            }
        }

        // 其他正常情报. 即arr中最短字符串一定包含字符. arr = ["a", "aid", "architecture"]
        int index = 0;
        boolean flag = true;
        while (flag) {

            for (String s : arr) {
                // 判断index位置上是否索引越界. 以及判断字符是否相等
                // 1. 索引越界即退出, 并记录位置. 2. 任何数组中的字符串的第index位不与第一位相等即退出, 并记录位置.
                if (s.length() <= index || arr[0].charAt(index) != s.charAt(index)) {
                    flag = false;
                    index--;
                    break;
                }
            }

            index++;
        }

        return arr[0].substring(0, index);
    }

在这里插入图片描述
全部代码如下:

public class TestDemo01 {
    public static void main(String[] args) {
        // 测试finally是否最终会执行
        System.out.println(testReturn());

        // 测试最长前缀是否寻找OK
        System.out.println(getMaxLengthPrefix(new String[]{"flow", "flight", "floor"}));
        System.out.println(getMaxLengthPrefix(new String[]{"", "", ""}));
        System.out.println(getMaxLengthPrefix(new String[]{"a", "aid", "architecture"}));
        System.out.println(getMaxLengthPrefix(new String[]{"architecture", "aid", "a"}));

        // 测试Byte分别与字符串和数字加是否会报错
        testByte();

        // 可以转换成功, 因为除了null以外,任何值+字符串都是字符串,任意值会调用toString方法.
        System.out.println("aaa"+new TestDemo01());
    }

    public static String testReturn () {
        try {
            System.out.println("我丢");
            return "halou";
        } catch (Exception e) {
            System.out.println("异常了");
        } finally {
            System.out.println("finally是否会执行");
        }

        return "我搞";
    }

    public static String getMaxLengthPrefix(String[] arr) {
        // 空则返回空. 应对arr = []或者arr = null情况
        if (arr == null || arr.length == 0) {
            return "";
        }

        // 空字符串数组则返回"", 应对最短字符串为空情况. arr = ["flow", "", "floor"], 这种也会返回""
        for (String s : arr) {
            if (s == null || s.length() == 0) {
                return "";
            }
        }

        // 其他正常情报. 即arr中最短字符串一定包含字符. arr = ["a", "aid", "architecture"]
        int index = 0;
        boolean flag = true;
        while (flag) {

            for (String s : arr) {
                // 判断index位置上是否索引越界. 以及判断字符是否相等
                // 1. 索引越界即退出, 并记录位置. 2. 任何数组中的字符串的第index位不与第一位相等即退出, 并记录位置.
                if (s.length() <= index || arr[0].charAt(index) != s.charAt(index)) {
                    flag = false;
                    index--;
                    break;
                }
            }

            index++;
        }

        return arr[0].substring(0, index);
    }

    public static void testByte() {
        Byte b1 = 7;
        System.out.println(b1 + 14);

        Byte b2 = 7;
        System.out.println(b2+"我丢~");
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1179328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器的操作系统,你选择哪些?

OpenCloudOS CentOS CentOS Stream Ubuntu Debian Windows Server

【c++】——类和对象(中)——默认成员函数(上)

【学习目标】 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 目录 一.类的6个默认成员函数 二. 构造函数 2.1 概念 2.2.特性 三.析构函数 3.1.概念 3.2 特性 四.拷贝构造函数 4.1.概念 4.2.特性 一.类的6个默认成员函数 如果一个类中什么成员…

解决 SSLError: HTTPSConnectionPool(host=‘huggingface.co‘, port=443)

看我的回答&#xff1a; https://github.com/huggingface/transformers/issues/17611#issuecomment-1794486960 能问这个问题的都是网络不太好的&#xff0c;你懂的&#xff0c;所以答案全是解决网络的。 得益于这个回答&#xff1a;#17611 (comment) 看了一下代码&#xf…

Apache Doris (五十三): Doris Join类型 - Shuffle Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. shuffle Join的原理

学信息系统项目管理师第4版系统36_结语

1. 尘埃落定 10月28日首考&#xff0c;到11月5日结束&#xff0c;尘埃落定&#xff0c;尘归尘、土归土了。 软考机考第一次吃螃蟹&#xff0c;几家欢喜几家愁&#xff0c;高项的选择题和案例题反馈简单&#xff0c;原书原文的考法&#xff0c;不过属于犄角旮旯那种。 中级则普…

GPT-4V:AI在教育领域的应用

OpenAI于9月25日发布了最新的GPT-4V模型&#xff0c;为ChatGPT引入了语音和图像功能&#xff0c;为用户提供更多元化的使用方式。这次更新将为用户带来更便捷、直观的交互体验&#xff0c;用户可以直接拍照上传并针对照片内容提出问题。OpenAI的最终目标是构建安全、有益的人工…

WindowsServer2019-搭建FTP服务器

这里写自定义目录标题 一、基础配置IP地址安装FTP服务检查连通性Windows10连接FTP服务 二、了解和使用FTP具体模块及其配置1、FTP IP地址和域限制2、FTP SSL设置3、FTP当前会话4、FTP防火墙5、FTP目录浏览6、FTP请求筛选7、FTP日志8、FTP身份验证9、FTP授权规则10、FTP消息11、…

数据结构(五):哈希表及面试常考的算法

一、哈希表介绍 1、定义 哈希表&#xff0c;也叫散列表&#xff0c;是根据关键码和值 (key和value) 直接进行访问的数据结构&#xff0c;通过key和value来映射到集合中的一个位置&#xff0c;这样就可以很快找到集合中的对应元素。例如&#xff0c;下列键(key)为人名&#xf…

5、Python中的变量和表达式:变量的定义、赋值和数据类型转换

文章目录 Python中的变量和表达式:变量的定义、赋值和数据类型转换变量的定义变量的赋值数据类型转换注意事项表达式总结Python中的变量和表达式:变量的定义、赋值和数据类型转换 Python是一种高级编程语言,以其简洁明了的语法和强大的功能而闻名。在Python编程中,变量和表…

docker安装达梦数据库镜像并初始化实例设置数据库大小写不敏感

全文参考文章Docker - 通过容器安装部署达梦数据库教程 以及docker安装达梦V8数据库 UTF-8及大小写敏感问题 一、安装部署达梦数据库 下载完成之后使用FileZilla上传到服务器上面 启动命令 创建dm8的容器并设置大小写不敏感运行 docker run -d -p 5236:5236 \ --restartalwa…

链式前向星模板

建稠密图可以用邻接矩阵&#xff0c;但稀疏图再用邻接矩阵就很浪费空间了&#xff0c;有可能会爆空间复杂度。 可以用邻接表来实现邻接表建图&#xff0c;两种方法&#xff1a;1.链表 2.链式前向行 只讲第二种&#xff0c;比较常用简洁 链式前向星模板 #define IOS ios::syn…

详解vue3的ref和reactive

目录 Vue3是目前前端领域最受欢迎的JavaScript框架之一&#xff0c;它的核心是响应式数据系统。因此&#xff0c;Vue3的ref和reactive成为了Vue3的核心特性之一。通过使用这两个特性&#xff0c;我们能够轻松地构建出高效、可维护的Vue3应用程序。在本文中&#xff0c;我们将详…

CoTTA:连续的测试时域自适应方法

文章信息 论文题目为《Continual Test-Time Domain Adaptation》&#xff0c;该文于2022年发表于Conference on Computer Vision and Pattern Recognition (CVPR)会议上。文章提出了一种持续的测试时域自适应方法&#xff08;CoTTA&#xff09;&#xff0c;旨在应对非稳态和不断…

本周三商店更新:多款套装下线,四款升级武器带异色皮肤返厂

本周三将迎来26.2版本更新与11商店大更新&#xff0c;版本更新可点击26.2版本更新公告进行查看&#xff0c;这里不一一赘述了&#xff0c;下面大概罗列一下商店更新&#xff0c;有皮肤下架&#xff0c;大家还能趁最后时间入手&#xff0c;最重要的是四款升级武器返厂咯。 危险玩…

shell脚本入门之【变量的定义】

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《shell》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;…

vue.js实现科室无限层选中和回显

一、效果展示&#xff1a; 展示可选层级 查看选中的值 二、实现&#xff1a; <el-form-item label"相关科室:" prop"orgId"><el-cascaderpopper-class"cascader-my":options"orgOptions":show-all-levels"false"…

文献管理软件Zotero之入门篇(1)

文章目录 0、前言1、下载安装1.1、下载安装主程序1.2、下载安装浏览器插件 2、给Zotero添加插件以实现更多快捷功能2.1、插件安装方式2.2、插件获取方式2.2.1、直接在官网插件也下载2.2.2、在Zotero中文社区插件页下载 3、总结 0、前言 一直以来想找一个文献管理帮手&#xff…

二进制代码反汇编逆向工具:IDA Pro(WinMac)v7.7 汉化版

IDA Pro是一款交互式的、可编程的、可扩展的、多处理器的、交叉Windows或Linux WinCE MacOS平台主机来分析程序。它被公认为最好的花钱可以买到的逆向工程利器&#xff0c;已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。 IDA Pro的特点主要包括…

海康Visionmaster-全局脚本:通过全局脚本获取通讯输 入的参数并赋值给全局变量

全局脚本根据外部通讯输入的数值赋值给全局变量&#xff0c;实现输入与全局变量之间的数值绑定。&#xff08;一般应用于定位、标定等需要外界物理值的场景)。 第一步&#xff0c;在 vm 通讯管理中设置好通讯设备&#xff0c;连接 第二步&#xff0c;根据通讯设备、接收的信息…

基于CMT2119A 无线发射芯片的物联网技术研究

随着物联网技术的快速发展&#xff0c;无线通信设备的需求也越来越大。CMT2119A无线发射芯片作为一种先进的芯片技术&#xff0c;被广泛应用于物联网中。本文通过对CMT2119A无线发射芯片的研究&#xff0c;探讨了其在物联网技术中的应用&#xff0c;分析了其特点和优势&#xf…