Java刷题面试系列习题(六)

news/2024/5/17 17:36:34/文章来源:https://blog.csdn.net/m0_47384542/article/details/126473958

文章目录

  • 前言
  • Java题目练习
    • ⭕题目一: 统计一句话中重复单词的个数
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目二: map简单应用
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目三: 集合排序
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目四: 判断各类型字符个数
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目五: 编写个人所得税计算程序
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目六:记录点赞用户
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目七:回文数判断
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目八:判断素数个数
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目九: 根据周长求面积
      • 🌟代码演示
      • 💯思路解析
    • ⭕题目十: 冒泡排序
      • 🌟代码演示
      • 💯思路解析
  • ✍ 结语
  • 作者:KJ.JK


🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
 
🍂个人博客首页: KJ.JK
 
💖系列专栏:Java刷题面试系列
 
💨推荐一款实用的模拟面试、刷题练习算法的神器、适用于所有的程序猿👉点击开始免费刷题,跟着博主走上巅峰💪


前言

博主偶然的一次刷题,发现了这个非常不错的网站牛客网,进去里面刷了一下,发现覆盖面非常的广,不仅有大厂的面试真题,还有小白的入门算法题,对刚刚接触计算机语言的人来说非常的友好,所以博主决定开启一个专栏,详细记录在牛客网的刷题思路讲解,大家一起跟随博主走入算法的大门吧!
👉点击开始免费刷题,跟着博主走上巅峰💪


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


Java题目练习


⭕题目一: 统计一句话中重复单词的个数


在这里插入图片描述


🌟代码演示

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String line = scanner.nextLine();Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();for (int i = 0; i < line.length(); i++) {char c = line.charAt(i);if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {if (map.containsKey(c)) {map.put(c, map.get(c) + 1);} else {map.put(c, 1);}}}Set<Map.Entry<Character, Integer>> entrys = map.entrySet();for (Map.Entry<Character, Integer> entry : entrys) {System.out.println(entry.getKey() + ":" + entry.getValue());}}
}

💯思路解析

       本题目思路是:"使用一个map集合来解,因为map可以存储键值对,字母为键,次数为值即可,不过需要用的LinkedHashMap,因为这个是可以按照顺序输出的"

⭕题目二: map简单应用


在这里插入图片描述


🌟代码演示

import java.util.*;
public class Main {public static void main(String[] args) {Scanner scanner  = new Scanner(System.in);String name = scanner.next();Map<Integer, String> map = new HashMap<Integer, String>();map.put(1, "Amy");map.put(2, "Joe");map.put(3, "Tom");map.put(4, "Susan");//write your code here......Set<Map.Entry<Integer, String>> entries = map.entrySet();for (Map.Entry<Integer, String> entry : entries) {Integer key = entry.getKey();String value = entry.getValue();System.out.println(key+":"+value);}System.out.println(" ");map.put(5,name);map.remove(4);map.put(3,"Tommy");for (Map.Entry<Integer, String> entry : entries) {Integer key = entry.getKey();String value = entry.getValue();System.out.println(key+":"+value);}}
}

💯思路解析

       本题目思路是:"按照题目来即可"

⭕题目三: 集合排序


在这里插入图片描述


🌟代码演示

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Customer customer1 = new Customer("小明",scanner.nextInt());Customer customer2 = new Customer("小军",scanner.nextInt());Customer customer3 = new Customer("小红",scanner.nextInt());List<Customer> customers = new ArrayList<>();customers.add(customer1);customers.add(customer2);customers.add(customer3);//write your code here......Collections.sort(customers);    System.out.println(customers);}
}class Customer implements Comparable<Customer>{private String name;private int consumption;public Customer(String name, int consumption) {this.name = name;this.consumption = consumption;}@Overridepublic String toString() {return "Customer{" +"name='" + name + '\'' +", consumption=" + consumption +'}';}@Overridepublic int compareTo(Customer o) {return  o.consumption-consumption;    //降序} }

💯思路解析

       本题目思路是:"重写接口的方法,改它们的排序规则即可"

⭕题目四: 判断各类型字符个数


在这里插入图片描述


🌟代码演示

//解法1:根据ASCII码来解
import java.util.*;
public class Main {public static void main(String[] args){Scanner rd= new Scanner(System.in);String a=rd.nextLine();char [] b=a.toCharArray();         //把字符串变成字符数组int english=0;int number=0;int space=0;int other=0;for (int i = 0; i < b.length; i++) {if(b[i]>='a'&&b[i]<='z'){english++;}else if(b[i]>='0'&&b[i]<='9'){number++;}else if(b[i]==' '){space++;}else {other++;}}System.out.println("英文字母"+english+"数字"+number+"空格"+space+"其他"+other);}
}----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//解法2:直接用Character自带的方法进行检测
import java.util.Scanner;
public class Main {public static void main(String[] args) {int numbers = 0;int words = 0;int space = 0;int other = 0;Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();//write your code here......char[] chars = str.toCharArray();for (int i = 0; i < chars.length; i++) {char c = chars[i];if (Character.isLetter(c)) {words++;} else if (Character.isDigit(c)) {numbers++;} else if (Character.isWhitespace(c)) {space++;} else {other++;}}System.out.println("英文字母" + words + "数字" + numbers + "空格" + space + "其他" + other);}
}

💯思路解析

在这里插入图片描述


    本题目思路是:解法1"根据ASCII码表来进行if else的判断"解法2: "直接用Character自带的方法进行检测,Character.isLetter:判断字符是不是英文;Character.isDigit:判断字符是不是数字;Character.isWhitespace:判断字符是不是空格"

⭕题目五: 编写个人所得税计算程序


在这里插入图片描述


🌟代码演示

import java.util.*;
public class Main {public static void main(String[] args) {List<Employee> employees = new ArrayList<>();//write your code here......Employee e1 = new Employee("小明",2500);Employee e2 = new Employee("小军",8000);Employee e3 = new Employee("小红",100000);employees.add(e1) ;employees.add(e2) ;employees.add(e3) ;Iterator it = employees.iterator();while(it.hasNext()){Employee e4 = (Employee) it.next() ;double num = e4.getSalary() - 3500.00;double sax = 0.0 ;if(num < 0 ){}else if(num <= 1500){sax = num * 0.03 - 0 ;}else if(num <= 4500){sax = num * 0.1 - 105 ;}else if(num <= 9000){sax = num * 0.2 - 555 ;}else if(num <= 35000){sax = num * 0.25 - 1005 ;}else if(num <= 55000){sax = num * 0.3 - 2755 ;}else if(num <= 80000){sax = num * 0.35 - 5505 ;}else if(num > 80000){sax = num * 0.45 - 13505 ;}System.out.println(e4.getName()+"应该缴纳的个人所得税是:"+sax);}}
}
class Employee{private String name;private double salary;public Employee(String name, double salary) {this.name = name;this.salary = salary;}public String getName() {return name;}public double getSalary() {return salary;}
}

💯思路解析

                 本题目思路:"根据题目来即可"

⭕题目六:记录点赞用户


在这里插入图片描述


🌟代码演示

import java.util.*;public class Main {public static void main(String[] args) {LikeRecorder recorder = new LikeRecorderImpl();Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {String name = scanner.next();recorder.like(name);}System.out.println(Arrays.toString(recorder.getLikeUsers()));}}/*** 点赞记录器*/
interface LikeRecorder {/*** 若用户没有点赞过,则记录此次点赞行为。* 若用户曾经点赞过,则删除用户点赞记录。** @param username 用户名*/void like(String username);/*** 返回所有点赞的用户名** @return 用户名数组*/String[] getLikeUsers();}class LikeRecorderImpl implements LikeRecorder {// write your code here......public HashSet<String> hs = new HashSet();public void like(String username){if(hs.contains(username)){hs.remove(username);}else{hs.add(username);}}public String[] getLikeUsers(){return hs.toArray(new String[hs.size()]);}}

💯思路解析

                 本题目思路:"根据题目来即可"

⭕题目七:回文数判断


在这里插入图片描述


🌟代码演示

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner console = new Scanner(System.in);Main main = new Main();int number = console.nextInt();System.out.println(main.palindromeNumber(number));}public Boolean palindromeNumber(int number) {String numStr = String.valueOf(number);char numChar[] = numStr.toCharArray();if (numChar[0]==numChar[4]&&numChar[1]==numChar[3]) {return true;}return false;
}}

💯思路解析

                 本题目思路:"根据题目来即可"

⭕题目八:判断素数个数


在这里插入图片描述


🌟代码演示

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int start = scanner.nextInt();int end = scanner.nextInt();method(start,end);}public static boolean is_prime(int num){for(int i=2;i<num;i++){if(num%i==0)return false;}return true;}public static void method(int start, int end) {int count=0;//write your code here......if(end<start)start=start+end-(end=start);for(int i=start;i<=end;i++){if(i<=2)continue;if(is_prime(i))count++;}System.out.println(start+"到"+end+"之间有"+count+"个大于2的素数");}
}

💯思路解析

                 本题目思路:"素数又叫质数,指的是在大于1的自然数中,除了1和它本身,没有别的因数,也就是如果一个数只能被1和它本身整除,那么这个数就叫做素数"

⭕题目九: 根据周长求面积


在这里插入图片描述


🌟代码演示

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNextDouble()) {double s = scanner.nextDouble();// Circle和Square是需要你定义的类System.out.println(String.format("%.3f",new Circle(s).getArea()));System.out.println(String.format("%.3f", new Square(s).getArea()));}}}class Shape {private double s; // 周长public Shape(double s) {this.s = s;}public double getS() {return s;}}interface Area {double getArea(); // 面积
}// 圆形
class Circle extends Shape implements Area {//write your code here......//调用父类的构造方法public Circle(double s){super(s);}//2πr = 圆的周长double r = super.getS() / (2 * Math.PI);public double getArea(){return Math.PI * r * r;}}// 方形
class Square extends Shape implements Area {//write your code here......public Square(double s){super(s);}//4a = 正方形周长double side = super.getS() / 4;public double getArea(){return side * side;}}

💯思路解析

                     本题目思路是:根据题目描述来即可

⭕题目十: 冒泡排序


在这里插入图片描述


🌟代码演示

import java.util.Arrays;
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int[] arr = new int[7];for (int i = 0; i < arr.length; i++) {arr[i] = scanner.nextInt();}scanner.close();//write your code here......Arrays.sort(arr);for (int k = 0; k < arr.length; k++) {System.out.print(arr[k]+" ");}}
}

💯思路解析

       本题目思路是:"这里使用的是直接sort进行排序"


✍ 结语

多刷刷题目,才能早日迈入大厂,巩固我们学习到的知识,下一期见,订阅专栏刷题不迷路
👉点击开始免费刷题,跟着博主走上巅峰💪


作者:KJ.JK

文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享查题公众号制作过程

分享查题公众号制作过程 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

不要再把数据可视化搞成表面工程,论数据可视化的正确逻辑

日前&#xff0c;我国网民规模达10.51亿的消息上了热搜&#xff0c;点进去看才发现是中国互联网络信息中心&#xff08;CNNIC&#xff09;发布了最新的《中国互联网络发展状况统计报告》&#xff0c;其中有很多值得思考的信息&#xff0c;也为未来发展指明了大的方向。就比如网…

Linux内核设计与实现 第一章 Linux内核简介

1.1Unix的历史 1969,贝尔实验室的程序员Dennis Ritchie 和Ken Thompsin等&#xff0c;编写Multics失败&#xff0c;不甘心没有交互式操作系统&#xff0c;设计了一个文件系统原型&#xff0c;这个原型最终演化成了Unix。 Unix系统设计简洁&#xff0c;发布时提供源代码&#x…

AviX Ergo 改善工作条件的视觉人体工程学

随着装配线的要求越来越复杂,人体工程学正成为关注的焦点。AviX Ergo 通过视频评估带来了一种全新的方法来改善工作场所的人体工程学。 AviX Ergo 将 AviX 方法对工作场所的深入分析与公认的 Borg CR-10 量表相结合,以确定工作场所的生理压力水平,同时评估心理压力。 1、BOR…

uniapp一键生成iOS通用链接

第一步&#xff1a;开启Associated Domains服务 登录苹果开发者中心 &#xff0c;在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID&#xff0c;确保开启Associated Domains服务 开启Associated Domains服务后需要重新生成profile文…

即时零售加速布局,社区团购的优势依旧非常明显

新零售业态不断发展&#xff0c;线上便捷性和个性化推荐优势逐步放大&#xff0c;线下渠道智能化水平持续提升&#xff0c;线上线下渠道趋向深度融合。即时零售、无接触消费和直播带货等新消费场景加快布局并保持发展势头。随着社会环境的变化以及购物需求的旺盛刺激&#xff0…

跨越技术鸿沟,革新存储产业:华瑞指数云重磅发布下一代软件定义存储产品

2022年8月31日&#xff0c;由华瑞指数云&#xff08;ExponTech&#xff09;主办的“全自研下一代软件定义存储产品体验沙龙”在北京圆满举办。发布会现场&#xff0c;华瑞指数云重磅推出全自研极速分布式块存储产品WDS 。这是继2021年11月24日该公司在中国数据与存储峰会发布Wi…

Django之路由层

目录 django请求生命周期流程图 路由匹配 分组命名匹配 无名分组 有名分组 传递额外的参数给视图函数 命名URL 和 URL反向解析 命名URL URL反向解析--前端 URL反向解析---后端 无名分组反向解析 有名分组反向解析 路由分发 名称空间 django请求生命周期流程图 dj…

Tomcat的安装与优化

目录 一、安装Tomcat所需javajdk环境 ①安装jdk ②设置jdk环境变量 ③加载生效&#xff0c;查看版本 二、安装Tomcat ①解压 ②改名&#xff0c;移动位置 ③优化管理 ④启动关闭 ⑤浏览器进入本地地址&#xff0c;添加8080端口即可进入tomcat服务器 三、优化tomcat启动…

什么是伪共享?Java8如何使用@sun.misc.Contended避免伪共享?

什么是伪共享 缓存系统中是以缓存行&#xff08;cache line&#xff09;为单位存储的。缓存行是2的整数幂个连续字节&#xff0c;一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时&#xff0c;如果这些变量共享同一个缓存行&#xff0c;就会无…

网课搜题公众号接口 大学生新手使用必备

网课搜题公众号接口 大学生新手使用必备 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后…

风控模型黑箱可解释,试下这个方法来演示

模型的开发&#xff0c;目前在互金领域场景中因为变量多&#xff0c;开发周期短&#xff0c;目前用得最多的就是XGB、LGB这类的机器学习模型。 比如我们之前跟大家输出的关于个人信贷反欺诈评分卡的开发内容里&#xff0c;我们用的就是lightgbm来建模的&#xff0c;相关的操作细…

设计模式--简单工厂方法

简介 简单工厂模式属于创建型模式,是工厂模式的一种。简单工厂模式通过定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类,这个父类具有共有的属性和方法。因在简单工厂模式中用于创建实例的方法通常是静态方法,因此也称为静态工厂方…

SpringBoot整合Flowable工作流引擎框架

Flowable工作流引擎框架介绍 一个Java编写的轻量级业务流程引擎&#xff0c;为开发人员、系统管理员和业务用户提供工作流和业务流程管理&#xff08;BPM&#xff09;平台。不仅包括BPMN&#xff0c;还有DMN决策表和CMMN Case管理引擎&#xff0c;并且有自己的用户管理、微服务…

新机器(禁止上网)安装vscode及公钥方式登陆linux

1.1 新机器(禁止上网)安装vscode 注意:以下三个程序版本必须一至。 1) vscodeWin10安装程序 2) win10插件(ssh客户端) 3) linux里vscode-server-linux-x64.tar.gz(ssh服务端)方法一:从原桌面直接copy文件夹(绿色)转移到新机器 方法二:安装新的VSCodeUserSetup-x64-1.70.2.ex…

macOS分发app打包+签名+公证+添加票据+生成dmg文件

1.打包 网上有很多使用命令行的打包的方式大家可自行查找,以下是使用Xcode进行打包. 首先配置证书要配置Developer ID Application证书然后使用的是Xcode进行打包:Product->Archive 这种打包方式的好处是省去了签名的过程,但是用网上其他人的命令查看签名时候还是未成功&a…

lararvel学习文档

学习文档 http://laravel.p2hp.com/ http://laravel.p2hp.com/cndocs/9.x/eloquent#generating-model-classes laravel9.x https://learnku.com/docs/laravel/9.x laravel8.5 https://learnku.com/docs/laravel/8.5 laravel8.x https://learnku.com/docs/laravel/8.x …

CentOS7安装MySQL(完整版)

在CentOS中默认安装有MariaDB&#xff0c;这个是MySQL的分支&#xff0c;但为了需要&#xff0c;还是要在系统中安装MySQL&#xff0c;而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [rootlocalhost ~]# wget -i -c http://dev.mysql.com…

最新小红书数据 小红书爬虫 小红书接口 xhs 小红书算法 小红书api

最新版小红书APP接口,需要交流的朋友联系,少量勿扰,谢谢! 只取APP公开数据,不做违法事情,如有侵犯贵公司,请联系删除! 博主详情 笔记详情 博主笔记列表 笔记评论 关键词搜索等等接口已部署,支持并发,可测试!

openmmlab 教程1-安装

文章目录openmmlab 教程11. 安装1.1 介绍1.2 安装1) 安装mmcv-full(建议)2) 安装mmseg3) mmcv-full和mmcv区别1.3 验证安装成功1) 源码安装2) pip 安装openmmlab 教程1 官方文档 安装 MMCV — mmcv 1.6.1 文档 依赖 — MMSegmentation 0.27.0 文档 笔记链接 https://gitee.co…