首页 > 其他分享 >[LeetCode] 1805. Number of Different Integers in a String

[LeetCode] 1805. Number of Different Integers in a String

时间:2022-12-06 04:55:05浏览次数:56  
标签:Integers 1805 word String integers different 34 123 charAt

You are given a string word that consists of digits and lowercase English letters.

You will replace every non-digit character with a space. For example, "a123bc34d8ef34" will become " 123  34 8  34". Notice that you are left with some integers that are separated by at least one space: "123""34""8", and "34".

Return the number of different integers after performing the replacement operations on word.

Two integers are considered different if their decimal representations without any leading zeros are different.

Example 1:

Input: word = "a123bc34d8ef34"
Output: 3
Explanation: The three different integers are "123", "34", and "8". Notice that "34" is only counted once.

Example 2:

Input: word = "leet1234code234"
Output: 2

Example 3:

Input: word = "a1b01c001"
Output: 1
Explanation: The three integers "1", "01", and "001" all represent the same integer because
the leading zeros are ignored when comparing their decimal values.

Constraints:

  • 1 <= word.length <= 1000
  • word consists of digits and lowercase English letters.

字符串中不同整数的数目。

给你一个字符串 word ,该字符串由数字和小写英文字母组成。

请你用空格替换每个不是数字的字符。例如,"a123bc34d8ef34" 将会变成 " 123  34 8  34" 。注意,剩下的这些整数为(相邻彼此至少有一个空格隔开):"123"、"34"、"8" 和 "34" 。

返回对 word 完成替换后形成的 不同 整数的数目。

只有当两个整数的 不含前导零 的十进制表示不同, 才认为这两个整数也不同。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/number-of-different-integers-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路是双指针。这道题是简单题,但是有一些 corner case 需要处理。题意不难理解,就是把 input 字符串里的数字都挑出来,然后返回 unique 的数字的个数。由于需要返回的只是数字的个数,所以我们不需要把字符串转换成数字,这样也就没有整型溢出的问题了。corner case 是比如例子三,对于1, 01, 001,我们都视为 1。

时间O(n)

空间O(n)

Java实现

 1 class Solution {
 2     public int numDifferentIntegers(String word) {
 3         // corner case
 4         if (word == null || word.length() == 0) {
 5             return 0;
 6         }
 7         
 8         // normal case
 9         HashSet<String> set = new HashSet<>();
10         int i = 0;
11         while (i < word.length()) {
12             if (Character.isDigit(word.charAt(i))) {
13                 int j = i;
14                 StringBuilder sb = new StringBuilder();
15                 while (i < word.length() && Character.isDigit(word.charAt(i))) {
16                     sb.append(word.charAt(i));
17                     i++;
18                 }
19                 while (j < i && word.charAt(j) == '0') {
20                     j++;
21                 }
22                 set.add(word.substring(j, i));
23             } else {
24                 i++;
25             }
26         }
27         return set.size();
28     }
29 }

 

LeetCode 题目总结

标签:Integers,1805,word,String,integers,different,34,123,charAt
From: https://www.cnblogs.com/cnoodle/p/16954126.html

相关文章

  • React中的BUG记录——Error: Element type is invalid: expected a string (for built
    问题描述语法各个方面没有问题,报以下错误:Error:Elementtypeisinvalid:expectedastring(forbuilt-incomponents)oraclass/function(forcompositecomponents......
  • StringBuffer类和StringBuilder类
    1.StringBuffer类基本介绍java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删。很多方法与String相同,但StringBuffer是可变长度的。StringBuffer是一......
  • String类
    1.String类的理解和创建对象String对象用于保存字符串,也就是一组字符序列2)字符串常量对象是用双引号括起的字符序列。例如:“你好"、"12.97"、"boy"等3)字符串的字......
  • Java基础-String、StringBuffer、StringBuilder类
    String类String的特性:String类代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。String是一个final类,代表不可变的字符序列。......
  • 基本数据类型、包装类、String三者之间的相互转换
    基本数据类型、包装类、String三者之间的相互转换 packagecom.atguigu.java2;​importorg.junit.Test;​/*  包装类的使用:  1.java提供了8种基本数据类型对应......
  • Mybatis 返回对象中包含多个 List<String>属性
    数据库数据mysql>select*fromai_user;+----+-----------+--------+|id|user_name|status|+----+-----------+--------+|1|Answer|1||2|Iris......
  • String相关
     面试题packagecom.atguigu.exer;​/*  面试题:*/publicclassStringTest{​  Stringstr=newString("good");  char[]ch={'t','e','s','t'};​......
  • Python爬取中国最好大学排行榜报错TypeError: unsupported format string passed to N
    ​本文使用的是如下网址:http://gaokao.xdf.cn/201911/10991728.html1问题分析与解决报错为类型错误,显示我们传递了不支持的格式字符串1.1strip()我们查看网页源码,......
  • STL-string的使用
    [TOC]一.string初识1.STL简介a.STL的组成STL(standardtemplatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的......
  • string
    基础操作str.size();||str.length();//返回字符串的长度str1.swap(str2);||swap(str1,str2);//交换str1和str2,建议用第一种方法str.substr(num1,num2);//返回str......