大厂面试题(利用JAVA写一到九求和算法)

简介: 大厂面试题(利用JAVA写一到九求和算法)

求123456789 字符串1..9 之间不改数字位置随机+-要求表达结果和为100,写出这样表达式

package demo;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.regex.Pattern;

/**
 * @author yeqv
 * @program A2
 * @Classname a3
 * @Date 2022/1/13 17:17
 * @Email w16638771062@163.com
 */
public class a3 {
    public static void main(String[] args) {
        //定义一个集合
        Set<String> set = new HashSet<String>();
        int index = 0;
        while (true) {
            //定义一个字符类型的数组
            String[] s1 = {"", "+", "-"};
            //实例化一个随机生成器对象
            Random rand = new Random();
            //实例化一个字符串类型的构造器对象第一位是字符串“1”
            StringBuilder sbu = new StringBuilder("1");
            //定义一个循环,最大数是9
            for (int i = 2; i <= 9; i++) {
                //向字符串构造器“sbu”中随机插入数组s1中的一个字符串
                sbu.append(s1[rand.nextInt(s1.length)]);
                //向构造器中插入当前循环的数字i
                sbu.append(i);
            }
            //利用正则表达式制定一个格式,每一段开头是+-或者空,后面是0-9之间的数字,例如
            // 12+345-6+78-9
            var p3 = Pattern.compile("[+-]*[0-9]+");
            //将字符串构造器内的字符串与格式匹配
            var m3 = p3.matcher(sbu);
            //定以一个int类型的变量当作式子的和
            int sum = 0;
            //将构造器中的字符串按顺序判断是否与格式匹配
            while (m3.find()) {
                //将子序列字符串转换为int类型赋值与num
                int num = Integer.parseInt(m3.group());
                //将转换后的式子相加
                sum += num;
            }
            //判断式子的和是否为100并且集合中不能包含sbu这个字符串
            if (sum == 100 && !set.contains(sbu.toString())) {
                //输出序列和式子
                System.out.printf("%d、%s = 100%n", ++index, sbu);
                //将字符串添加到集合set中
                set.add(sbu.toString());
            }
            //判断集合中的字符串数量够10个结束
            if (set.size() == 10) {
                break;
            }
        }

    }

}
相关文章
|
1月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
76 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
16天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
18天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
41 4
|
1月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩分享分库分表的基因算法设计,涵盖分片键选择、水平拆分策略及基因法优化查询效率等内容,助力面试者应对大厂技术面试,提高架构设计能力。
美团面试:百亿级分片,如何设计基因算法?
|
1月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩在读者群中分享了关于分库分表的基因算法设计,旨在帮助大家应对一线互联网企业的面试题。文章详细介绍了分库分表的背景、分片键的设计目标和建议,以及基因法的具体应用和优缺点。通过系统化的梳理,帮助读者提升架构、设计和开发水平,顺利通过面试。
美团面试:百亿级分片,如何设计基因算法?
|
1月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
110 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
1月前
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
74 2
|
1月前
|
算法 Java Linux
java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解
这篇文章介绍了如何在Java中使用Graphics2D在图片上绘制文字,并实现自动换行的功能。
106 0
|
1月前
|
JSON 安全 前端开发
第二次面试总结 - 宏汉科技 - Java后端开发
本文是作者对宏汉科技Java后端开发岗位的第二次面试总结,面试结果不理想,主要原因是Java基础知识掌握不牢固,文章详细列出了面试中被问到的技术问题及答案,包括字符串相关函数、抽象类与接口的区别、Java创建线程池的方式、回调函数、函数式接口、反射以及Java中的集合等。
31 0
|
1月前
|
算法 Java 测试技术
数据结构 —— Java自定义代码实现顺序表,包含测试用例以及ArrayList的使用以及相关算法题
文章详细介绍了如何用Java自定义实现一个顺序表类,包括插入、删除、获取数据元素、求数据个数等功能,并对顺序表进行了测试,最后还提及了Java中自带的顺序表实现类ArrayList。
23 0
下一篇
无影云桌面