栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

习题:5898. 数组中第 K 个独一无二的字符串(C++)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

习题:5898. 数组中第 K 个独一无二的字符串(C++)

题目
独一无二的字符串 指的是在一个数组中只出现过 一次 的字符串。

给你一个字符串数组 arr 和一个整数 k ,请你返回 arr 中第 k 个 独一无二的字符串 。如果 少于 k 个独一无二的字符串,那么返回 空字符串 “” 。

注意,按照字符串在原数组中的 顺序 找到第 k 个独一无二字符串。

示例 1:

输入:arr = [“d”,“b”,“c”,“b”,“c”,“a”], k = 2
输出:“a”
解释:
arr 中独一无二字符串包括 “d” 和 “a” 。
“d” 首先出现,所以它是第 1 个独一无二字符串。
“a” 第二个出现,所以它是 2 个独一无二字符串。
由于 k == 2 ,返回 “a” 。

示例 2:

输入:arr = [“aaa”,“aa”,“a”], k = 1
输出:“aaa”
解释:
arr 中所有字符串都是独一无二的,所以返回第 1 个字符串 “aaa” 。

示例 3:

输入:arr = [“a”,“b”,“a”], k = 3
输出:""
解释:
唯一一个独一无二字符串是 “b” 。由于少于 3 个独一无二字符串,我们返回空字符串 “” 。

提示:

1 <= k <= arr.length <= 1000
1 <= arr[i].length <= 5
arr[i] 只包含小写英文字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/kth-distinct-string-in-an-array

哈希表解法,和 只出现一次的数字 解法一模一样

class Solution
{
public:
    string kthDistinct(vector& arr, int k)
    {
        unordered_map freq;
        int tmp=0;
        for (auto& s : arr)
            freq[s]++;
        for (auto& s : arr)
        {
            if (freq[s] == 1)
            {
                tmp++;
                if (tmp == k)
                    return s;
            }                
        }
        return "";
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号