2023-06-02 LeetCode每日一题(统计范围内的元音字符串数)

这篇具有很好参考价值的文章主要介绍了2023-06-02 LeetCode每日一题(统计范围内的元音字符串数)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2023-06-02每日一题

一、题目编号

2559. 统计范围内的元音字符串数

二、题目链接

点击跳转到题目位置

三、题目描述

给你一个下标从 0 开始的字符串数组 words 以及一个二维整数数组 queries 。

每个查询 queries[i] = [li, ri] 会要求我们统计在 words 中下标在 li 到 ri 范围内(包含 这两个值)并且以元音开头和结尾的字符串的数目。

返回一个整数数组,其中数组的第 i 个元素对应第 i 个查询的答案。

注意:元音字母是 ‘a’、‘e’、‘i’、‘o’ 和 ‘u’ 。

提示

  • 1 <= words.length <= 105
  • 1 <= words[i].length <= 40
  • words[i] 仅由小写英文字母组成
  • sum(words[i].length) <= 3 * 105
  • 1 <= queries.length <= 105
  • 0 <= queries[j][0] <= queries[j][1] < words.length

四、解题代码

class Solution {
    bool judge(char ch){
        if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u'){
            return true;
        }
    return false;
    }

    bool judge_string(string s){
        if(judge(s[0]) == true && judge(s[s.size() - 1]) == true){
            return true;
        }
    return false;
    }

public:
    vector<int> vowelStrings(vector<string>& words, vector<vector<int>>& queries) {
        vector<int> res;
        int n = words.size();
        int perifix_sum[n+1];
        for(int i = 1; i <= n; ++i){
            if(judge_string(words[i-1]) == true){
                perifix_sum[i] = perifix_sum[i-1] + 1;  
            } else{
                perifix_sum[i] = perifix_sum[i-1];
            }
        }
        int m = queries.size();
        for(int i = 0; i < m; ++i){
            int x = queries[i][0];
            int y = queries[i][1];
            res.push_back(perifix_sum[y+1] - perifix_sum[x]);
        }
    return res;
    }
};

五、解题思路

(1) 采用前缀和来帮助统计l ~ r区间内所有符合要求的字符串的个数。

(2) 写一个函数,用来判断该字符是否是元音字符。

(3) 写一个函数,用来判断该字符串是否满足首尾都是元音字符。这需要调用 (2) 中所说的函数

(4) 0 ~ x 区间内的符合要求的字符串数量记作perifix_sum[x + 1],那么l ~ r 区间内为 perifix_sum[r+1] -
perifix_sum[l]。

(5) 遍历查询结果,填入答案即可。文章来源地址https://www.toymoban.com/news/detail-468162.html

到了这里,关于2023-06-02 LeetCode每日一题(统计范围内的元音字符串数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023-08-06 LeetCode每日一题(24. 两两交换链表中的节点)

    点击跳转到题目位置 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例1: 示例2: 示例3: 提示: 链表中节点的数目在范围 [0, 100] 内 0 = Node.val = 100 (1) 使用递归解决问题

    2024年02月14日
    浏览(42)
  • 2023/07/02_leetcode每日一题_2.两数相加

    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:l1 = [9,9,9,9,9,9

    2024年02月11日
    浏览(48)
  • 2023-08-23 LeetCode每日一题(统计点对的数目)

    点击跳转到题目位置 给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成,其中 edges[i] = [u i , v i ] 表示 u i 和 v i 之间有一条无向边。同时给你一个代表查询的整数数组 queries 。 第 j 个查询的答案是满足如下条件的点对 (a, b) 的数目: a b cnt 是与 a 或者 b

    2024年02月11日
    浏览(51)
  • 2023-06-14 LeetCode每日一题(二进制字符串前缀一致的次数)

    点击跳转到题目位置 给你一个长度为 n 、下标从 1 开始的二进制字符串,所有位最开始都是 0 。我们会按步翻转该二进制字符串的所有位(即,将 0 变为 1)。 给你一个下标从 1 开始的整数数组 flips ,其中 flips[i] 表示对应下标 i 的位将会在第 i 步翻转。 二进制字符串 前缀

    2024年02月08日
    浏览(48)
  • 2023-08-24 LeetCode每日一题(统计参与通信的服务器)

    点击跳转到题目位置 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其他服务器进行通信的服

    2024年02月10日
    浏览(41)
  • 2023-09-02 LeetCode每日一题(最多可以摧毁的敌人城堡数目)

    点击跳转到题目位置 给你一个长度为 n ,下标从 0 开始的整数数组 forts ,表示一些城堡。forts[i] 可以是 -1 ,0 或者 1 ,其中: -1 表示第 i 个位置 没有 城堡。 0 表示第 i 个位置有一个 敌人 的城堡。 1 表示第 i 个位置有一个你控制的城堡。 现在,你需要决定,将你的军队从

    2024年02月10日
    浏览(41)
  • Leetcode每日一题:1782. 统计点对的数目(2023.8.24 C++)

    目录 1782. 统计点对的数目 题目描述: 实现代码与解析: hash + 双指针 原理思路:         给你一个无向图,无向图由整数  n   ,表示图中节点的数目,和  edges  组成,其中  edges[i] = [ui, vi]  表示  ui  和  vi  之间有一条无向边。同时给你一个代表查询的整数数组 

    2024年02月10日
    浏览(44)
  • Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)

    目录 1267. 统计参与通信的服务器 题目描述: 实现代码与解析: 写法一:两次遍历 + hash 原理思路: 写法二:三次遍历 原理思路:         这里有一幅服务器分布图,服务器的位置标识在  m * n  的整数矩阵网格  grid  中,1 表示单元格上有服务器,0 表示没有。 如果两

    2024年02月11日
    浏览(37)
  • 2023-08-25 LeetCode每日一题(统计二叉树中好节点的数目)

    点击跳转到题目位置 给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 示例 2: 示例 3: 提示: 二叉树中节点数目范围是 [1, 10 5 ] 。 每个节点权值的范围是 [-10

    2024年02月11日
    浏览(33)
  • Leetcode每日一题:1448. 统计二叉树中好节点的数目(2023.8.25 C++)

    目录 1448. 统计二叉树中好节点的数目 题目描述: 实现代码与解析: dfs 原理思路:         给你一棵根为  root  的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 示例 2: 示例

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包