LeetCode 2496. 数组中字符串的最大值

news/2025/2/21 16:55:42

【LetMeFly】2496.数组中字符串的最大值

力扣题目链接:https://leetcode.cn/problems/maximum-value-of-a-string-in-an-array/

一个由字母和数字组成的字符串 定义如下:

  • 如果字符串 包含数字,那么值为该字符串10 进制下的所表示的数字。
  • 否则,值为字符串长度 

给你一个字符串数组 strs ,每个字符串都只由字母和数字组成,请你返回 strs 中字符串最大值 。

 

示例 1:

输入:strs = ["alic3","bob","3","4","00000"]
输出:5
解释:
- "alic3" 包含字母和数字,所以值为长度 5 。
- "bob" 只包含字母,所以值为长度 3 。
- "3" 只包含数字,所以值为 3 。
- "4" 只包含数字,所以值为 4 。
- "00000" 只包含数字,所以值为 0 。
所以最大的值为 5 ,是字符串 "alic3" 的值。

示例 2:

输入:strs = ["1","01","001","0001"]
输出:1
解释:
数组中所有字符串的值都是 1 ,所以我们返回 1 。

 

提示:

  • 1 <= strs.length <= 100
  • 1 <= strs[i].length <= 9
  • strs[i] 只包含小写英文字母和数字。

方法一:模拟

我们只需要按照题目要求进行模拟即可。

为了方便,可以写一个函数,用来返回一个字符串的“值”。

字符串的初始值为 a n s = 0 ans = 0 ans=0,从头到尾开始遍历字符串,一旦遇到非数字字符,就直接返回字符串的长度作为字符串的值;

否则,遍历过程中,每次将字符串的值ans修改为 a n s ∗ 10 + c ans * 10 + c ans10+c,最终返回ans即可。

  • 时间复杂度 O ( N ) O(N) O(N),其中 N N N是所有字符串的字符总个数
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++

class Solution {
private:
    int value(string& s) {
        int ans = 0;
        for (char c : s) {
            if (c < '0' || c > '9') {
                return s.size();
            }
            ans = ans * 10 + c - '0';
        }
        return ans;
    }
public:
    int maximumValue(vector<string>& strs) {
        int ans = 0;
        for (string& s : strs) {
            ans = max(ans, value(s));
        }
        return ans;
    }
};

Python

# from typing import List

class Solution:
    def value(self, s: str) -> int:
        ans = 0
        for c in s:
            if ord(c) < ord('0') or ord(c) > ord('9'):
                return len(s)
            ans = ans * 10 + ord(c) - ord('0')
        return ans

    def maximumValue(self, strs: List[str]) -> int:
        ans = 0
        for str in strs:
            ans = max(ans, self.value(str))
        return ans

同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/131347121


http://www.niftyadmin.cn/n/459648.html

相关文章

PyTorch深度学习实战(4)——常用激活函数和损失函数详解

PyTorch深度学习实战&#xff08;4&#xff09;——常用激活函数和损失函数详解 0. 前言1. 常用激活函数1.1 Sigmoid 激活函数1.2 Tanh 激活函数1.3 ReLU 激活函数1.4 线性激活函数1.5 Softmax 激活函数 2. 常用损失函数2.1 均方误差2.2 平均绝对误差2.3 分类交叉熵 2.4 实现自…

【Workflow】标准流程描述语言 WDL最佳实践

标准流程描述语言 WDL最佳实践 什么是WDL?Hello World基础结构顶层组件:workflow、task和call核心任务级组件:command和output添加变量Adding task-level variablesAdding workflow-level variables添加管道如何将task组装成workflow?Linear ChainingMulti-input / Multi-o…

下载安装Python解释器和环境变量配置

一、 python解释器下载 1.百度python官网并打开 官网网址&#xff1a;https://www.python.org/ 在这里插入图片描述 2.选择DownLoads&#xff0c;Windows并打开 3.在下图页面选择你需要的版本下载即可&#xff08;本文以python 3.10.4版本演示&#xff09; 在这里插入图片描述 …

Scala入门【变量和数据类型】

目录 Scala基本认知 Hello Scala 方法的定义 伴生对象 Java&#xff1a; Scala&#xff1a; 2、变量和数据类型 2.1、注释 2.2、变量和常量 Java中的变量和常量 Scala基本语法 2.3、标识符 2.4、字符串 基本语法 2.5、标准输入输出 基本语法 2.6、文件的读写 …

多EIP下的UDP通信异常分析

背景 SRE和程序在测试DDos多EIP防御方案的过程中&#xff0c;发现多EIP模式下, 监听的UDP端口连接会出现客户端访问异常。 表现为客户端发送一次数据后服务端这边主动断开了&#xff0c;或是客户端和服务端同时断开。 该问题会导致业务在多EIP方案下无法达到预期效果&#xff0…

使用npm安装pnpm包管理器

使用npm安装pnpm包管理器 一、安装 使用 npm install pnpm -g 命令安装pnpm npm install pnpm -g安装完成之后&#xff0c;使用pnpm -v命令查询是否成功安装&#xff0c;出现版本号即可 二、设置源 1.先查看源是否为淘宝的源 pnpm config get registry 2.设置源命令 pn…

【C++】内存管理、new和delete操作类型、operator new和operator delete函数、new和delete的实现原理

文章目录 1.C/C内存管理2.C语言的内存管理方式3.C内存管理方式3.1 new和delete操作内置类型3.2 new和delete操作自定义类型 4.operator new与operator delete函数5.new和delete的实现原理5.1内置类型5.2 自定义类型 1.C/C内存管理 在C/C中&#xff0c;内存管理是程序员负责管理…

【青书学堂】作业-计算机应用基础(高起专)

【青书学堂】作业-计算机应用基础(高起专) 第1题 单选题 在Word的编辑状态,按先后顺序依次打开了d1.doC、d2.doC、d3.doC、d4.doc 4个文档,当前的活动窗口的文档名为____。。 选项: A:d1.doc B:d2.doc C:d4.doc D:d3.doc 答案:C 第2题 单选题 在Excel中,保存工作簿时屏…