• Leetcode 2042. 检查句子中的数字是否递增


    在这里插入图片描述
    句子是由若干 token 组成的一个列表,token 间用 单个 空格分隔,句子没有前导或尾随空格。每个 token 要么是一个由数字 0-9 组成的不含前导零的 正整数 ,要么是一个由小写英文字母组成的 单词 。

    • 示例,"a puppy has 2 eyes 4 legs" 是一个由 7 个 token 组成的句子:"2" 和 "4" 是数字,其他像
      "puppy" 这样的 tokens 属于单词。

    给你一个表示句子的字符串 s ,你需要检查 s 中的 全部 数字是否从左到右严格递增(即,除了最后一个数字,s 中的 每个 数字都严格小于它 右侧 的数字)。

    如果满足题目要求,返回 true ,否则,返回 false 。

    示例 1:

    在这里插入图片描述

    输入:s = "1 box has 3 blue 4 red 6 green and 12 yellow marbles"
    输出:true
    解释:句子中的数字是:1, 3, 4, 6, 12 。
    这些数字是按从左到右严格递增的 1 < 3 < 4 < 6 < 12 。
    

    示例 2:

    输入:s = "hello world 5 x 5"
    输出:false
    解释:句子中的数字是:5, 5 。这些数字不是严格递增的。
    

    示例 3:

    在这里插入图片描述

    输入:s = "sunset is at 7 51 pm overnight lows will be in the low 50 and 60 s"
    输出:false
    解释:s 中的数字是:7, 51, 50, 60 。这些数字不是严格递增的。
    

    示例 4:

    输入:s = "4 5 11 26"
    输出:true
    解释:s 中的数字是:4, 5, 11, 26 。
    这些数字是按从左到右严格递增的:4 < 5 < 11 < 26 。
    

    提示:

    • 3 <= s.length <= 200
    • s 由小写英文字母、空格和数字 0 到 9 组成(包含 0 和 9)
    • s 中数字 token 的数目在 2 和 100 之间(包含 2 和 100)
    • s 中的 token 之间由单个空格分隔
    • s 中至少有 两个 数字
    • s 中的每个数字都是一个 小于 100 的 正 数,且不含前导零
    • s 不含前导或尾随空格

    主要思路:字符串分割
    Code:

    class Solution {
    public:
        void str_split(const std::string & src, const std::string & sep, std::vector<string> & vec_str)
        {
            std::string::size_type start = 0;
            int i=0;
            for(std::string::size_type end = src.find(sep, start); end != std::string::npos; end = src.find(sep, start))
            {
                if(end > start)
                {
                    
                    string str=src.substr(start, end - start);
                    vec_str.push_back(str);
                }
                start = end + sep.length();
            }
            if(start < src.length())
            {
                
                string str=src.substr(start, src.length() - start);
                vec_str.push_back(str);
                
            }
        }
        bool isCrease(vector<int>&vec)
        {
            for(int i=1;i<vec.size();i++)
            {
                if(vec[i]<=vec[i-1])
                    return false;
            }
            return  true;
        }
        bool areNumbersAscending(string s) {
            
            vector<string> vec;
            str_split(s," ",vec);
            
            vector<int>nums;
            
            for(int i=0;i<vec.size();i++)
            {
                if(vec[i][0]>='0'&&vec[i][0]<='9')
                {
                    nums.push_back(atoi(vec[i].c_str()));
                }
            }
            if(isCrease(nums))
                return true;
            
            
            return false;
        }
    };
    
  • 相关阅读:
    SharePoint Framework 构建你的第一个web部件(二)
    win32
    win32
    win32
    win32
    C++ 将filesystem::path转换为const BYTE*
    win32
    win32
    win32
    win32
  • 原文地址:https://www.cnblogs.com/xiaohai123/p/16352565.html
Copyright © 2020-2023  润新知