比较两个版本字符串version1和version2

2023-11-04

时间限制:1秒

空间限制:32768K

如果version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0.

输入的version字符串非空,只包含数字和字符.。.字符不代表通常意义上的小数点,只是用来区分数字序列。例如字符串2.5并不代表二点五,只是代表版本是第一级版本号是2,第二级版本号是5.

输入描述:
两个字符串,用空格分割。
每个字符串为一个version字符串,非空,只包含数字和字符.

输出描述:
只能输出1, -1,或0

输入例子1:
0.1 1.1

输出例子1:
-1

# include <iostream>
# include <string.h>
# include <stdio.h>
using namespace std;


int main(){
    string a,b;
    char num[100000];
    int x,y,count_a,count_b,len;
    int A[100000],B[100000];
    int status;
    while (cin>>a>>b) {
        x = 0,y=0,count_a=0;
        for (int i=0; i < a.length(); i++) {
            if (a[i] == '.') {
                count_a++;
                num[x] = '\0';
                A[y++] = atoi(num);
                x=0;
                continue;
            }
            num[x++] = a[i];
        }
        num[x] = '\0';
        A[y++] = atoi(num);
        
        x = 0,y=0,count_b=0;
        for (int i=0; i < b.length(); i++) {
            if (b[i] == '.') {
                count_b++;
                num[x] = '\0';
                B[y++] = atoi(num);
                x=0;
                continue;
            }
            num[x++] = b[i];
        }
        num[x] = '\0';
        B[y++] = atoi(num);
        //
        count_a++;count_b++;
        len = count_a > count_b? count_b:count_a;
        status = 0;
        for (int i=0; i<len; i++) {
            if (A[i] < B[i]) {
                status = -1;
                break;
            }else if (A[i] > B[i]){
                status =  1;
                break;
            }
        }
        if (status == 0 && count_a != count_b) {
            status = count_a>count_b?1:-1;
        }
        printf("%d\n",status);
    }
    return  0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

比较两个版本字符串version1和version2 的相关文章

  • python 历险记(五)— python 中的模块

    目录 前言 基础 模块化程序设计 模块化有哪些好处 什么是 python 中的模块 引入模块有几种方式 模块的查找顺序 模块中包含执行语句的情况 用 dir 函数来窥探模块 python 的内置模块有哪些 结语 参考文档 系列文章列表 前言
  • 将二叉树转为有序的双向链表

    一 题目要求 输入一棵二叉排序树 现在要将该二叉排序树转换成一个有序的双向链表 而且在转换的过程中 不能创建任何新的结点 只能调整树中的结点指针的指向来实现 include
  • PCL—低层次视觉—点云分割(RanSaC)

    点云分割 点云分割可谓点云处理的精髓 也是三维图像相对二维图像最大优势的体现 不过多插一句 自Niloy J Mitra教授的Global contrast based salient region detection出现 最优分割到底鹿死
  • 链表和线性表的优缺点

    链表和线性表的优缺点 作为我们最先接触的两个数据结构 链表和线性表的优缺点都较为明显 并且二者互相补足 文章目录 链表和线性表的优缺点 线性表 线性表的组成 线性表的缺点 线性表的优点 链表 链表的组成 链表的优点 链表的缺点 总结 线性表
  • 逆波兰表达式求值(C语言实现)

    实验项目 从文本文件输入任意一个语法正确的 中缀 表达式 显示并保存该表达式 利用栈结构 把上述 中缀 表达式转换成后缀表达式 并显示栈的状态变化过程和所得到的后缀表达式 利用栈结构 对上述后缀表达式进行求值 并显示栈的状态变化过程和最终结
  • SDUT--OJ《数据结构与算法》实践能力专题训练6 图论

    A 数据结构实验之图论一 基于邻接矩阵的广度优先搜索遍历 Description 给定一个无向连通图 顶点编号从0到n 1 用广度优先搜索 BFS 遍历 输出从某个顶点出发的遍历序列 同一个结点的同层邻接点 节点编号小的优先遍历 Input
  • 递归算法中的时间复杂度分析

    对于一种算法的时间复杂度分析还是特别重要的 在一些非递归算法中 我们仅仅看运算次数最多的那一行代码可能执行多少次就可以 实际就是看在循环中变量的变化 但是对于递归算法中该怎么分析呢 下面介绍几种递归函数中的算法时间复杂度分析的方法 0 递推
  • Hash映射理解

    先说数组 数组优点之一 能通过索引很快定位到值 hashmap 就是利用了数组这个优点 对比 线性映射 定义一个数组 数组的元素是结构体 结构体包括 一对键 值 伪代码表示 a 0 struct Bill 5 a 1 struct KK 6
  • 亚利桑那州立大学周纵苇:研习 U-Net ——现有的分割网络创新

    雷锋网AI研习社按 经典的 Encoder Decoder 结构在目标分割问题中展现出了举足轻重的作用 然而这样一个相对固定的框架使得模型在感受野大小和边界分割精度两方面很难达到兼顾 本次公开课 讲者以 U Net 为案例分析 总结现有的分
  • 如何根据链表节点数据大小对链表节点进行排序

    对链表排序有两种方法 1 比较了两个节点的大小后 对指针进行改变 从而交换节点的顺序 2 比较了两个节点的大小后 只交换数据域 而不改变指针 从而交换节点的顺序 第二种办法比较简单 本文主要对第二种方法进行讲解 链表节点排序算法 采用 冒泡
  • 数据结构小白之插入排序算法

    1 插入排序 1 1 思路 将n个需要排序的元素看成两个部分 一个是有序部分 一个是无序部分 开始的时候有序表只有一个元素 无序表有n 1个元素 排序过程中每次从无序表中取出元素 然后插入到有序表的适当位置 从而成为新的有序表 类似排队 如
  • 数据结构之图的两种遍历实现(C语言版)

    上一期文章分享完了图的两种遍历方式 也是两种很重要的算法 DFS和BFS 这两种算法的应用和重要性我就不多说了 内行的人懂的都懂 今天这文章重要就是来上机实现这两种算法 又由于这两种算法都可以由邻接矩阵和邻接表来表示 博主分享的代码都是上机
  • 图 - Java实现无向带权图的邻接矩阵表示法

    图 Java实现无向带权图的邻接矩阵表示法 1 图 1 1 图的介绍 图 Graph 是一种复杂的非线性表结构 图中的元素我们就叫做顶点 vertex 图中的一个顶点可以与任意其他顶点建立连接关系 我们把这种建立的关系叫做边 edge 跟顶
  • 如何防止过拟合和欠拟合

    过拟合和欠拟合是模型训练过程中经常出现的问题 两种情况正好相反 现将两者的定义及如何防止进行简要总结 1 过拟合 1 1 定义 是指模型对于训练数据拟合呈现过当的情况 反映到评估指标上就是模型在训练集上的表现很好 但是在测试集上的表现较差
  • OJ-合并两个有序链表

    题目描述 代码如下 Definition for singly linked list struct ListNode int val struct ListNode next struct ListNode mergeTwoLists s
  • 插入排序超详解释,一看就懂

    目录 一 插入排序的相关概念 1 基本思想 2 基本操作 有序插入 二 插入排序的种类 三 直接插入排序 1 直接插入排序的过程 顺序查找法查找插入位置 2 使用 哨兵 直接插入排序 四 直接插入排序算法描述 五 折半插入排序 1 查找插入
  • 基数排序代码实现

    详情请看排序总结 传送门 https blog csdn net m0 52711790 article details 121914543 基数排序的知识点我就不贴出来 相信都能搜到对应概念解释 下面就直接上代码 代码解释其实也很清晰了
  • 雪糕的最大数量 排序+贪心

    雪糕的最大数量 雪糕的最大数量 题目描述 样例 数据范围 思路 代码 题目描述 夏日炎炎 小男孩 Tony 想买一些雪糕消消暑 商店中新到 n 支雪糕 用长度为 n 的数组 costs 表示雪糕的定价 其中 costs i 表示第 i 支雪
  • Leetcode1094. 拼车

    Every day a Leetcode 题目来源 1094 拼车 解法1 差分数组 对于本题 设 a i 表示车行驶到位置 i 时车上的人数 我们需要判断是否所有 a i 都不超过 capacity trips i 相当于把 a 中下标从
  • 【数据结构入门精讲 | 第二篇】一文讲清算法复杂度

    上篇文章中我们引入了算法 数据结构 数据类型等概念 而要想衡量一个算法与数据结构是否为优质的 就需要一个衡量标准 这个衡量标准也是在我们实现一个好的算法时要遵循的原则 目录 基本概念 渐进性态 渐进性态数学表征 算法复杂度的运算 顺序搜索算

随机推荐

  • 如何度过程序员的菜鸟阶段?

    以下 是工作十年的老菜鸟给刚入职新菜鸟的八条建议 希望你能认真看看 早日脱离新菜鸟的坑 像我一样 成长为一名老菜鸟 1 别拿高考的心态去学技术 这世上没有技术驱动型公司 我见过很多新手程序员 特别执着于技术本身 因为只要技术厉害就可以在公司
  • c语言练习62:数组串联

    数组串联 给你一个长度为 n 的整数数组 nums 请你构建一个长度为 2n 的答案数组 ans 数组下标 从 0 开始计数 对于所有 0 lt i lt n 的 i 满足下述所有要求 ans i nums i ans i n nums i
  • @KafkaListener

    KafkaListener源码 package org springframework kafka annotation import java lang annotation Documented import java lang ann
  • 设计模型之外观模式(含UML完整实例)

    设设计模型之外观模式 1 外观模式 1 1 定义与特点 是一种通过为多个复杂的子系统提供一个一致的接口 外部应用程序不用关心内部子系统的具体的细节 这样会大大降低应用程序的复杂度 并减少了客户处理的对象数目 提高了程序的可维护性 外观 Fa
  • uncaught referenceerror cryptojs is not defined

    下载地址 https registry npmjs org crypto js crypto js 3 1 2 tgz 当需要别的版本只需要将版本修改即可 eg 4 1 2 https registry npmjs org crypto j
  • win10 安装 Ubuntu 子系统

    参考 Linux Ubuntu 20 04换阿里源 Ubuntu 20 04换国内源 清华源 阿里源 中科大源 163源 开启win10下Ubuntu子系统的SSH服务 Win10 wsl linux子系统ssh服务自启动设置 安装使用oh
  • 完美解决centos7下pdf中文不显示问题

    最近的网站开发中 有一个需要word转pdf的需求 本地发现word转pdf后中文正常展示 但是centos里面中文部分是空白的 针对此问题 解决方案如下 将本地windows里面的字体复制到linux上 windows10 字体路径为 C
  • 2024届IC秋招兆易创新数字IC后端笔试面试题

    数字IC后端实现PR阶段设计导入需要哪些文件 设计导入需要的文件如下图所示 这个必须熟练掌握 只要做过后端训练营项目的 对这个肯定是比较熟悉的 大家还要知道每个input文件的作用是什么 在吾爱IC后端训练营Cortexa7core项目中
  • python读音-原来Python应该这么念,怪不得总被嘲笑~

    原标题 原来Python应该这么念 怪不得总被嘲笑 Python具有简单 易学 免费 开源 可扩展 可嵌入 面向对象等优点 它的面向对象甚至比java和c net更彻底 可以与C 完美融合 两者堪称 万金油 相信很多人都不知道Python这
  • 常见(MySQL)面试题(含答案)

    常见 MySQL 面试题 含答案 本文的面试题如下 MyisAM和innodb的有关索引的疑问 innodb为什么要用自增id作为主键 MySql索引是如何实现的 说说分库与分表设计 面试过 聚集索引与非聚集索引的区别 事务四大特性 ACI
  • DataSource数据源

    本文详细的介绍了 JAVA中的数据源 认真看下来 你一定会收获满满 文章目录 一 DataSource接口 二 SpringBoot中的DataSource相关 1 默认提供一个数据源 2 自定义数据源 与 默认数据源 优先级 3 myba
  • win7中vscode配置jupyter

    一 内容简介 win7下用vscode写python程序 二 主要流程 3 1 安装环境 3 2 使用vscode运行调试python代码 3 3 vscode调用jupyter运行调试python代码 三 具体步骤 4 1 安装环境 vs
  • jsp Request原理

    jsp Request原理 1 Tomcat 服务器会根据请求url中的资源路径 创建对应的ServletDemo1的对象 2 tomcat服务器 会创建request和response对象 request对象封装请求消息数据 3 tomc
  • fijkplayer的使用

    1 配置 pubspec yaml 加入 fijkplayer 0 10 1 2 直接使用 import dart math import package flutter material dart import package fijkp
  • python面试题总结_2019(有解释答案) --3

    目录 50 Python 交换两个变量的值 51 在读文件操作的时候会使用 read readline 或者 readlines 简述它们各自的作用 52 json序列化时 可以处理的数据类型有哪些 如何定制支持 datetime 类型 5
  • 前端如何使用微信支付

    一 h5页面支付 h5页面接入微信支付分为两种情况 一种微信内置浏览器调用支付 另一种是在外置浏览器调用支付 内置浏览器支付 内置浏览器支付使用JSAPI支付 前端调用代码 wx chooseWXPay timestamp 0 支付签名时间
  • MySQL 服务器进程 mysqld的组成

    有连接层 SQL 层 存储层组成 连接层 为每个连接维护一个线程 进行身份验证 处理查询执行 SQL 层 包括了解析 授权分析 优化 执行 查询日志记录 存储层 管理表数据 常见的存储引擎有 InnoDB MyISAM MEMORY 和 N
  • python爬虫接口_爬虫与API(上)

    本系列两篇文章讲API的概念 以及它在爬虫中的使用 分为如下部分 API概念 库的API 数据API Github API httpbin 其他API 由于篇幅限制 本文只展示API概念 库的API 数据API API概念 API Appl
  • 程序员必知的23种设计模式之策略模式

    文章目录 1 模式引入 鸭子项目 2 传统方案解决鸭子问题 3 传统方式解决鸭子问题分析和解决方案 4 策略模式基本介绍 4 1 策略模式的原理类图 4 2 说明 5 策略模式解决鸭子问题 6 策略模式的注意事项和细节 1 模式引入 鸭子项
  • 比较两个版本字符串version1和version2

    时间限制 1秒 空间限制 32768K 如果version1 gt version2 返回1 如果 version1 lt version2 返回 1 不然返回0 输入的version字符串非空 只包含数字和字符 字符不代表通常意义上的小数