牛客BM22 比较版本号【中等 字符串 Java/Go/PHP/C++】

题目

在这里插入图片描述
在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7

思路

 字符串用.分割为数组,然后依次比较大小

Java代码

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 比较版本号* @param version1 string字符串* @param version2 string字符串* @return int整型*/public int compare (String version1, String version2) {//直接看代码,不难看懂String s1[] = version1.split("\\.");String s2[] = version2.split("\\.");int n1 = s1.length;int n2 = s2.length;int n = Math.max(n1, n2);int arr1[] = new int[n];for (int i = 0; i < s1.length; i++) {arr1[i] = Integer.valueOf(s1[i]);}int arr2[] = new int[n];for (int i = 0; i < s2.length ; i++) {arr2[i] = Integer.valueOf(s2[i]);}for (int i = 0; i < n ; i++) {if (arr1[i] > arr2[i]) return 1;else if (arr1[i] < arr2[i]) return -1;}return 0;}
}

Go代码

package mainimport ("strings""strconv"
)/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 比较版本号* @param version1 string字符串* @param version2 string字符串* @return int整型*/
func compare(version1 string, version2 string) int {// write code heres1 := strings.Split(version1, ".")s2 := strings.Split(version2, ".")n1 := len(s1)n2 := len(s2)n := n1if n < n2 {n = n2}arr1 := make([]int, n)arr2 := make([]int, n)for i := 0; i < n1; i++ {tmp, _ := strconv.Atoi(s1[i])arr1[i] = tmp}for i := 0; i < n2; i++ {tmp, _ := strconv.Atoi(s2[i])arr2[i] = tmp}for i := 0; i < n; i++ {if arr1[i] > arr2[i] {return 1} else if arr1[i] < arr2[i] {return -1}}return 0
}

PHP代码

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 比较版本号* @param version1 string字符串 * @param version2 string字符串 * @return int整型*/
function compare( $version1 ,  $version2 )
{// write code here$s1=explode(".",$version1);$s2 = explode(".",$version2);$n1 = count($s1);$n2= count($s2);$n = $n1;if($n<$n2){$n = $n2;}$arr1 = [];$arr2 = [];for($i=0;$i<$n;$i++){if($i<$n1){$arr1[$i] = intval($s1[$i]);}else{$arr1[$i] =0;$arr2[$i] =0;}}for($i=0;$i<$n2;$i++){$arr2[$i] = intval($s2[$i]);}for($i=0;$i<$n;$i++){if($arr1[$i] > $arr2[$i]) return 1;if($arr1[$i] < $arr2[$i]) return -1;}return 0;
}

C++代码

class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 比较版本号* @param version1 string字符串* @param version2 string字符串* @return int整型*/int compare(string version1, string version2) {// write code herevector<int> s1;vector<int> s2;int cur=0;for(int i=0;i<version1.length();i++){if(version1[i]!='.'){cur=cur*10+(version1[i]-48);}else{s1.push_back(cur);cur=0;}}s1.push_back(cur);cur=0;for(int i=0;i<version2.length();i++){if(version2[i]!='.'){cur=cur*10+(version2[i]-48);}else{s2.push_back(cur);cur=0;}}s2.push_back(cur);int n1 = s1.size();int n2 = s2.size();if(n1< n2){int diff = n2-n1;while (diff>0){s1.push_back(0);diff--;}}else if(n1>n2){int diff = n1-n2;while (diff>0){s2.push_back(0);diff--;}}for(int i=0;i<s1.size();i++){cout << s1[i] << ","<< s2[i] << endl;}for(int i=0;i<s1.size();i++){if(s1[i]> s2[i]) return 1;if(s1[i]<s2[i]) return -1;}return 0;}
};

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

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

相关文章

Linux常用命令整理

一、文件和目录操作 1. ls 列出目录内容选项&#xff1a;-l&#xff08;详细列表&#xff09;、-a&#xff08;包括隐藏文件&#xff09;、-h&#xff08;以人类可读的格式显示文件大小&#xff09; 2. cd 改变当前目录用法&#xff1a;cd 目录名 3. pwd 显示当前工作目录…

lvs安装文档

目录 1. 检测内核是否支持了lvs 2. 安装依赖 3. 安装ipvsadm 1. 检测内核是否支持了lvs Centos6.5的内核已经支持了lvs&#xff0c;所有只需要安装lvs的管理工具ipvsadm即可&#xff1b; 检查linux内核是否集成lvs模块&#xff1a;modprobe -l | grep ipvs 开启路由转发功…

欧洲版“OpenAI”——Mistral 举办的 AI 大模型马拉松

近期&#xff0c;法国的 Mistral AI 举办了一场别开生面的 AI 大模型马拉松。要知道&#xff0c;Mistral 可是法国对 OpenAI 的有力回应&#xff0c;而且其技术还是完全开源的呢&#xff01;这场在巴黎举行的黑客马拉松&#xff0c;规模空前盛大&#xff0c;竟然有超过 1000 名…

提升你的Netty服务器性能:零拷贝与Reactor模型精讲

1.深入Netty的核心原理 1.1 Netty架构概览 Netty是目前使用广泛的Java NIO客户端服务器框架&#xff0c;它能够快速构建可维护的高性能协议服务器与客户端。起初&#xff0c;它由JBoss提供&#xff0c;现完全成为社区驱动的项目。Netty提供了一种异步的、事件驱动的网络应用程…

二进制分析 ELF格式

简介: ELF 用于可执行文件&#xff0c;对象文件&#xff0c;共享库及核心转储&#xff0c;是UN IX系统实验室作为二进制接口而开发和发布 组成部分ELF 头部 该头部是一系列结构化的字节&#xff0c;描述是什么样的二进制文件及在文件的什么地方找到其他内容 可以在 /usr/includ…

一文了解经典报童模型的扩展问题

文章目录 1 引言2 经典报童模型3 综述文章4 模型扩展4.1 扩展目标函数4.2 增加约束条件4.3 增加优化变量4.4 扩展模型参数4.5 扩展问题场景 5 总结6 相关阅读 1 引言 时间过的真快呀&#xff0c;已经6月份了。距离上一篇文章发表&#xff0c;已经过去了将近一个月&#xff0c;…

godot.bk:how to add map to the game

1.项目构建如下&#xff0c;map是我们点击start之后才渲染出来的 mian.tscn --main.gd --background(textureact) --start(button) --button.gd sourceFile map.tscn --tilemap --tileset 2.main.gd&#xff1a;注意main.gd并不定义信号&#xff0c;它只是接收信号而已 extend…

Python冷知识

Python作为一种广泛使用的编程语言,有许多功能和特性可能不为初学者或普通用户所熟知。以下是一些相对冷门但有趣的Python知识: 魔术方法:Python中有一些特殊的方法,通常以双下划线__开头和结尾,被称为魔术方法(或特殊方法)。例如,__init__用于初始化对象,__str__返回…

冒泡排序与快速排序

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 关注博主带你了解更多数据结构知识 1.冒泡排序 冒泡排序 private static void swap(int[] arrary,int i,int j){int tmp arrary[i];arrary[i] arrary[j];arrary[j] tmp;public static void bubbl…

Java筑基-面向对象

Java-面向对象 一、类和对象1、类和对象的关系2、创建类3、创建对象4、成员变量与局部变量5、构造器5.1、创建对象的过程5.2、构造器的格式5.3、构造器和方法的区别5.4、构造器的作用5.5、构造器的重载 6、this关键字用法&#xff1a;6.1、this可以修饰属性6.2、this可以修饰方…

【Ubuntu常用命令】终端个人常用命令总结

【Ubuntu常用命令】终端常用命令总结 查看硬盘挂载情况查看内存占用情况移动或重命名文件和目录复制文件或目录conda安装本地文件 查看硬盘挂载情况 mount 命令会列出当前系统上所有已挂载的文件系统。它会显示挂载点、文件系统类型、挂载选项等信息 mount df 命令用于显示文…

使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用

使用 pm2 或 screen 等工具来管理和后台运行你的 Node.js 应用。 使用 pm2 pm2 是一个用于 Node.js 应用的进程管理工具&#xff0c;提供了守护进程、日志管理和应用重启等功能。 安装 pm2&#xff1a; npm install pm2 -g启动你的 Node.js 应用&#xff1a; pm2 start se…

outlook邮箱使用技巧

Microsoft Outlook 是一款广泛使用的电子邮件客户端&#xff0c;它提供了许多功能来帮助用户有效地管理电子邮件、日程、联系人等。下面是一些实用的Outlook邮箱使用技巧&#xff0c;可以帮助你提高工作效率和邮件管理效能&#xff1a; ### 1. 快速搜索 - **使用搜索功能**&am…

【一小时学会Charles抓包详细教程】Charles 抓包相关设置 (7)

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 Charles 抓包相…

数据库(18)——DCL权限控制

MySQL常用权限 权限说明ALL,ALL PRIVILEGES所有权限SELECT查询数据INSERT插入数据UPDATE修改数据DELETE删除数据ALTER修改表DROP删除数据库/表/视图CREATE创建数据库/表 DCL语法 查询权限 SHOW GRANTS FOR 用户名主机名; 查询hello的权限 SHOW GRANTS FOR hellolocalhost; 授…

02.了解容器的发展史

容器技术的发展过程 1&#xff09;:chroot技术&#xff0c;新建一个子系统&#xff08;拥有自己完整的系统文件&#xff09; 参考资料&#xff1a;https://www.ibm.com/developerworks/cn/linux/l-cn-chroot/ chang root 使用chroot监狱限制SSH用户访问指定目录和使用指定命…

【ARIMA时序预测】基于支持向量机结合ARIMA-SVM实现风电功率预测附matlab代码

% 步骤1&#xff1a;加载风电功率数据 load(‘wind_power_data.mat’); % 假设数据存储在变量power_data中 % 步骤2&#xff1a;划分训练集和测试集 trainRatio 0.7; % 训练集比例 trainSize floor(trainRatio * length(power_data)); trainData power_data(1:trainSize); …

GCB | 基于36年5个生态系统观测数据发现表层土壤深度提高生态系统的生产力和稳定性

陆地生态系统生产力对全球粮食安全和促进碳固存至关重要&#xff0c;但生产力受到气候变化以及火灾、干旱、洪水、霜冻频率增加和生物多样性减少的压力。了解控制生态系统初级生产力变异的不同因素和机制&#xff0c;为维持生态系统初级生产力和增强生态系统恢复力提供了科学依…

LeetCode题练习与总结:不同的子序列--115

一、题目描述 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数&#xff0c;结果需要对 10^9 7 取模。 示例 1&#xff1a; 输入&#xff1a;s "rabbbit", t "rabbit" 输出&#xff1a;3 解释&#xff1a; 如下所示, 有 …

OJ1230进制的转换

答案&#xff1a; #include <bits/stdc.h> using namespace std; using lllong long; const int N10; int a[10]; char ch[]{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; void solve() {int n,m;cin>>n>>m;string str;cin>>str;for(int i0;i<str.size();i)…