Leetcode 2259. 移除指定数字得到的最大结果(可以,一次过)
Published on 2022-06-17 16:54 in 分类: C/C++ with 萧海~
分类: C/C++

Leetcode 2259. 移除指定数字得到的最大结果(可以,一次过)

    在这里插入图片描述
    给你一个表示某个正整数的字符串 number 和一个字符 digit 。

    从 number 中 恰好 移除 一个 等于 digit 的字符后,找出并返回按 十进制 表示 最大 的结果字符串。生成的测试用例满足 digit 在 number 中出现至少一次。

    示例 1:

    输入:number = "123", digit = "3"
    输出:"12"
    解释:"123" 中只有一个 '3' ,在移除 '3' 之后,结果为 "12"

    示例 2:

    输入:number = "1231", digit = "1"
    输出:"231"
    解释:可以移除第一个 '1' 得到 "231" 或者移除第二个 '1' 得到 "123"
    由于 231 > 123 ,返回 "231"

    示例 3:

    输入:number = "551", digit = "5"
    输出:"51"
    解释:可以从 "551" 中移除第一个或者第二个 '5'
    两种方案的结果都是 "51"

    提示:

    • 2 <= number.length <= 100
    • number 由数字 '1' 到 '9' 组成
    • digit 是 '1' 到 '9' 中的一个数字
    • digit 在 number 中出现至少一次

    Code:

    class Solution {
    public:
    string removeDigit(string number, char digit) {
    string res="";
    for(int i=0;i<number.size();i++)
    {
    string temp=number;
    if(res.length()==0)
    {
    int pos;
    if((pos=number.find(digit,i))!=string::npos)
    res=temp.erase(number.find(digit,i),1);
    }
    else
    {
    int pos;
    if((pos=number.find(digit,i))!=string::npos)
    {
    string str=temp.erase(pos,1);
    if(str>res)
    res=str;
    }
    }
    }
    cout<<res<<endl;
    return res;
    }
    };
    posted @   萧海~  阅读(48)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    点击右上角即可分享
    微信分享提示
    电磁波切换