首页 > 其他分享 >leetcode.cn165

leetcode.cn165

时间:2022-12-22 11:47:00浏览次数:77  
标签:ver1 ver2 bool n1 n2 leetcode cn165

最近刷leetcode.cn,碰到这题。

题目很水,没啥说的,主要是写法的问题。因为leetcode.cn蛋疼的输入输出通过参数给出,不方便用cin。

以前遇到这种题我一般会用java,写法很简单,split成字符串数组再比较就ok。用C/C++的话,因为C/C++标准库没有字符串split函数,得手写(或者用strtok,但是也没split方便),稍麻烦点。于是这次我详细查了下资料,发现C++标准库有个sstream头文件,里面有个istringstream工具,用string构造,用起来跟cin几乎一模一样。代码如下:

 1 class Solution {
 2 public:
 3     int compareVersion(string version1, string version2) {
 4         istringstream ver1(version1), ver2(version2);
 5         int n1, n2;
 6         char c;
 7         while (bool(ver1 >> n1) + bool(ver2 >> n2)) { // 不用||而是转为bool再相加是为了避免第一个读取成功导致另一个不执行
 8             if (n1 != n2) {
 9                 return n1 > n2 ? 1 : -1;
10             }
11             ver1 >> c;
12             ver2 >> c;
13             n1 = n2 = 0; // 提前置0以备读取失败时用
14         }
15         return 0;
16     }
17 };

 

另外值得一提的是关于逻辑或运算符那里,我也是值细想了一下才写出来这么简洁的。

标签:ver1,ver2,bool,n1,n2,leetcode,cn165
From: https://www.cnblogs.com/moonbay/p/16998033.html

相关文章

  • [LeetCode] 1753. Maximum Score From Removing Stones
    Youareplayingasolitairegamewith threepiles ofstonesofsizes a​​​​​​, b,​​​​​​and c​​​​​​respectively.Eachturnyouchoosetw......
  • [LeetCode]010-正则表达式匹配
    >>>传送门题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持'.' 和 '*' 的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元......
  • #yyds干货盘点# LeetCode程序员面试金典:最小高度树
    题目:给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例:给定有序数组:[-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],......
  • LeetCode HOT 100:颜色分类(荷兰国旗问题)
    题目:75.颜色分类题目描述:给你一个数组,元素只为0、1、2,分别代表红色、白色和蓝色。将数组中相同颜色的元素移动到一起,并将它们排序。也就是将0都排在最前面,1排在中间,2排......
  • [leetcode]第 5 天 查找算法(中等)
    04.二维数组中的查找思路直接遍历!两个for循环classSolution{publicbooleanfindNumberIn2DArray(int[][]matrix,inttarget){for(int[]row:mat......
  • LeetCode刷题笔记
    目录AlgorithmNote基础数组链表哈希表字符串栈与队列二叉树参考链接:代码随想录AlgorithmNote基础数组67:Sqrt-X二分查找法:x平方根的整数部分是ans是满足\(k^2......
  • #yyds干货盘点# LeetCode程序员面试金典:节点间通路
    题目:节点间通路。给定有向图,设计一个算法,找出两个节点之间是否存在一条路径。示例1:输入:n=3,graph=[[0,1],[0,2],[1,2],[1,2]],start=0,target=2输出:tr......
  • [LeetCode]009-回文数
    >>>传送门题目给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不......
  • leetcode-整数反转
    给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围 [−231, 231 −1],就返回0。假设环境不允许存储64......
  • [leetcode]第 3 天 字符串(简单)
    05.替换空格思路由于每次替换从1个字符变成3个字符,使用字符数组可方便地进行替换。classSolution{publicStringreplaceSpace(Strings){StringBuff......