数组中的第 K 个不同字符串

2024-08-06 0 920

数组中的第 K 个不同字符串

2053。数组中的第 k 个不同字符串

简单

不同字符串是在数组中仅出现一次的字符串。

给定一个字符串数组 arr 和一个整数 k,返回 arr 中存在的第 kth 不同字符串。如果少于 k 个不同的字符串,则返回一个空字符串 “”.

注意,字符串按照它们在数组中出现的顺序进行考虑。

示例1:

  • 输入: arr = [“d”,”b”,”c”,”b”,”c”,”a”], k = 2
  • 输出:“a”
  • 说明 arr 中唯一不同的字符串是“d”和“a”。 “d”出现在 1st,因此它是第 1st 不同的字符串。 “a”出现在第 2nd,因此它是第 2nd 不同的字符串。 由于 k == 2,因此返回“a”。

示例2:

  • 输入: arr = [“aaa”,”aa”,”a”], k = 1
  • 输出:“aaa”
  • 说明 arr 中的所有字符串都是不同的,因此返回第一个字符串“aaa”。

示例3:

  • 输入: arr = [“a”,”b”,”a”], k = 3
  • 输出: “”
  • 解释: 唯一不同的字符串是“b”。由于不同的字符串少于 3 个,因此我们返回一个空字符串“”。

限制:

  • 1
  • 1
  • arr[i] 由小写英文字母组成。

提示:

  1. 尝试“映射”字符串以检查它们是否唯一。

解决方案:

要解决这个问题,我们可以按照以下步骤操作:

  1. 创建频率图(关联数组)来计算给定数组中每个字符串的出现次数。
  2. 迭代数组以按照出现的顺序收集不同的字符串(仅出现一次的字符串)。
  3. 检查不同字符串的数量是否至少为 k。如果是,则返回第 k 个不同的字符串;否则,返回空字符串。

让我们用 php 实现这个解决方案:2053。数组中的第 k 个不同字符串

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php // Test cases

$arr1 = array("d", "b", "c", "b", "c", "a");

$k1 = 2;

echo kthDistinct($arr1, $k1) . "\n"; // Output: "a"

$arr2 = array("aaa", "aa", "a");

$k2 = 1;

echo kthDistinct($arr2, $k2) . "\n"; // Output: "aaa"

$arr3 = array("a", "b", "a");

$k3 = 3;

echo kthDistinct($arr3, $k3) . "\n"; // Output: ""

?>

解释:

  1. 频率图:我们首先创建一个频率图来统计每个字符串在数组中出现的次数。
    • [“d”, “b”, “c”, “b”, “c”, “a”] 结果为 [“d” => 1, “b” => 2, “c” => 2, ” a”=> 1]
  2. 收集不同字符串:我们再次迭代数组,收集频率图中计数为 1 的字符串。
    • 对于 [“d”, “b”, “c”, “b”, “c”, “a”],我们得到 [“d”, “a”]。
  3. 返回结果:我们检查是否至少有 k 个不同的字符串,如果存在则返回第 k 个,否则返回一个空字符串。

提供的代码在给定的约束内有效地处理问题。

联系链接

如果您发现本系列有帮助,请考虑在 Github 上给存储库 一颗星,或在您最喜欢的社交网络上分享该帖子?。您的支持对我来说意义重大!

如果您想要更多类似的有用内容,请随时关注我:

  • 领英
  • github
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

免责声明
1. 本站所有资源来源于用户上传和网络等,如有侵权请邮件联系本站整改team@lcwl.fun!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系本站工作人员处理!
6. 本站资源售价或VIP只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 因人力时间成本问题,部分源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
9.本站所有源码资源都是经过本站工作人员人工亲测可搭建的,保证每个源码都可以正常搭建,但不保证源码内功能都完全可用,源码属于可复制的产品,无任何理由退款!

网站搭建学习网 PHP 数组中的第 K 个不同字符串 https://www.xuezuoweb.com/9092.html

常见问题
  • 本站所有的源码都是经过平台人工部署搭建测试过可用的
查看详情
  • 购买源码资源时购买了带主机的套餐是指可以享受源码和所选套餐型号的主机两个产品,在本站套餐里开通主机可享优惠,最高免费使用主机
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

Fa快捷助手
手机编程软件开发

在手机上用手点一点就能轻松做软件

去做软件
链未云主机
免备案香港云主机

开通主机就送域名的免备案香港云主机

去使用
链未云服务器
免备案香港云服务器

支持售后、超低价、稳定的免备案香港云服务器

去使用