每日一练_8:两种排序方法 and 求最小公倍数
创始人
2024-06-03 07:57:40
0

一.两种排序方法

题目链接:

两种排序方法

题目描述:

考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:
“car” < “carriage” < “cats” < "doggies < “koala”
2.根据字符串的长度排序。例如:
“car” < “cats” < “koala” < “doggies” < “carriage”
考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。

输入描述:

输入第一行为字符串个数n(n ≤ 100)
接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成

输出描述:

如果这些字符串是根据字典序排列而不是根据长度排列输出"lexicographically",
如果根据长度排列而不是字典序排列输出"lengths",
如果两种方式都符合输出"both",否则输出"none"

示例1:

输入:
3
a
aa
bbb
输出:
both

个人总结:

通过函数compareTo()来比较是否按照字典序排序,通过长度来比较是否按照长度排序,最后将结果对比输出即可。
PS: sc.nextLine(); 若不太清楚为什么要加这个可以参考nextLine()常见问题

代码实现:

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int len = sc.nextInt();sc.nextLine();String[] word = new String[len];for (int i = 0; i < len; i++) {word[i] = sc.nextLine();}boolean flagD = isDictionary(word);boolean flagL = isLength(word);if (flagD && flagL) {System.out.println("both");} else if (flagL) {System.out.println("lengths");} else if (flagD) {System.out.println("lexicographically");} else {System.out.println("none");}}public static boolean isDictionary(String[] word) {for (int i = 1; i < word.length; i++) {if (word[i].compareTo(word[i - 1]) < 0) {return false;}}return true;}public static boolean isLength(String[] word) {for (int i = 1; i < word.length; i++) {if (word[i].length() < word[i - 1].length()) {return false;}}return true;}
}

二.求最小公倍数

题目链接:

求最小公倍数

题目描述:

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
数据范围:1≤a,b≤100000

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数。

示例1:

输入:
5 7
输出:
35

示例2:

输入:
2 4
输出:
4

个人总结:

首先我们要知道:数 A * 数 B = 两数的最小公倍数 * 两数最大公约数,然后根据这个规律,我们可以使用辗转相除法(辗转相除法求最大公约数)先求出最大公约数,最后得出最小公倍数。

代码实现:

import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int A = sc.nextInt();int B = sc.nextInt();int num = gcd(A, B);System.out.println((A * B) / num);}public static int gcd(int A, int B) {int C = 0;while (B != 0) {C = A % B;A = B;B = C;}return A;}
}

相关内容

热门资讯

122.(leaflet篇)l... 听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
Vue使用pdf-lib为文件... 之前也写过两篇预览pdf的,但是没有加水印,这是链接:Vu...
PyQt5数据库开发1 4.1... 文章目录 前言 步骤/方法 1 使用windows身份登录 2 启用混合登录模式 3 允许远程连接服...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
Linux基础命令大全(上) ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维...
再谈解决“因为文件包含病毒或潜... 前面出了一篇博文专门来解决“因为文件包含病毒或潜在的垃圾软件”的问题,其中第二种方法有...
南京邮电大学通达学院2023c... 题目展示 一.问题描述 实验题目1 定义一个学生类,其中包括如下内容: (1)私有数据成员 ①年龄 ...
PageObject 六大原则 PageObject六大原则: 1.封装服务的方法 2.不要暴露页面的细节 3.通过r...
【Linux网络编程】01:S... Socket多进程 OVERVIEWSocket多进程1.Server2.Client3.bug&...
数据结构刷题(二十五):122... 1.122. 买卖股票的最佳时机 II思路:贪心。把利润分解为每天为单位的维度,然后收...
浏览器事件循环 事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间࿰...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
计算机二级Python备考(2... 目录  一、选择题 1.在Python语言中: 2.知识点 二、基本操作题 1. j...
端电压 相电压 线电压 记得刚接触矢量控制的时候,拿到板子,就赶紧去测各种波形,结...
如何使用Python检测和识别... 车牌检测与识别技术用途广泛,可以用于道路系统、无票停车场、车辆门禁等。这项技术结合了计...
带环链表详解 目录 一、什么是环形链表 二、判断是否为环形链表 2.1 具体题目 2.2 具体思路 2.3 思路的...
【C语言进阶:刨根究底字符串函... 本节重点内容: 深入理解strcpy函数的使用学会strcpy函数的模拟实现⚡strc...
Django web开发(一)... 文章目录前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和s...