当前位置: 首页 > news >正文

响应式网站底部菜单栏/jsurl转码

响应式网站底部菜单栏,jsurl转码,西安网站制作开发公司哪家好,许昌企业网站建设给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] [a, b] 表示字符串中的两个索引(编号从 0 开始)。 你可以 任意多次交换 在 pairs 中任意一对索引处的字符。 返回在经过若干次交换后,s …

给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。

你可以 任意多次交换pairs 中任意一对索引处的字符。

返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。

示例 1:

输入:s = "dcab", pairs = [[0,3],[1,2]]
输出:"bacd"
解释: 
交换 s[0] 和 s[3], s = "bcad"
交换 s[1] 和 s[2], s = "bacd"

示例 2:

输入:s = "dcab", pairs = [[0,3],[1,2],[0,2]]
输出:"abcd"
解释:
交换 s[0] 和 s[3], s = "bcad"
交换 s[0] 和 s[2], s = "acbd"
交换 s[1] 和 s[2], s = "abcd"

示例 3:

输入:s = "cba", pairs = [[0,1],[1,2]]
输出:"abc"
解释:
交换 s[0] 和 s[1], s = "bca"
交换 s[1] 和 s[2], s = "bac"
交换 s[0] 和 s[1], s = "abc"

提示:

  • 1 <= s.length <= 10^5
  • 0 <= pairs.length <= 10^5
  • 0 <= pairs[i][0], pairs[i][1] < s.length
  • s 中只含有小写英文字母

解题思路

这个题目乍一看很难先手,我们不方法将给的例子过一遍。首先第一个例子

接着第二个例子

我们此时发现根据pairs可以将s中的不同字符联系起来,实际上我们可以将联系在一起的字符串看成是一个集合,然后对这个集合从小到大排序,最后再按照原先的位置将各个字符放回去,那么此时所构成的字符串一定是可以通过pairs转换后字典序最小的那个。说到这,其实就不难想到并查集了。

class Solution:def smallestStringWithSwaps(self, s: str, pairs: List[List[int]]) -> str:p = list(range(len(s)))def find(x):if x != p[x]:p[x] = find(p[x])return p[x]for i, j in pairs:px, py = find(i), find(j)if px != py:p[px] = pymem = collections.defaultdict(list)for i, v in enumerate(p):mem[find(v)].append(s[i])for k in mem:mem[k].sort(reverse=True)res = []for i in range(len(s)):res.append(mem[find(i)].pop())return "".join(res)

算法思路非常清晰,首先遍历pairs通过并查集确定集合,然后对相同集合的字符进行排序,最后将字符归位。

我将该问题的其他语言版本添加到了我的GitHub Leetcode

如有问题,希望大家指出!!!

http://www.jmfq.cn/news/5047759.html

相关文章:

  • 建设工程规范发布网站/正版搜索引擎优化
  • 网络整合营销理论概念/seo站群优化
  • 小企业网站建设论文/全网关键词云在哪里看
  • 企业网站如何制作/b2b平台排名
  • 贵阳网站制作方舟网络/卡点视频软件下载
  • wordpress添加分类图片/安徽百度seo教程
  • 哪家网络么司做网站好/沈阳网站seo公司
  • 做分析仪器推广的网站/友情链接交换教程
  • wordpress做社交网站吗/软件推广
  • 简约网站版式/项目推广渠道有哪些
  • 青岛网站设计公司电话/优化网站关键词排名软件
  • 齐齐哈尔做网站的公司/外贸seo软文发布平台
  • 哈尔滨网站建设唯辛ls15227/宁波网站推广方式怎么样
  • 网站建设与开发/网站seo网络优化
  • 联想网站建设摘要/个人网页设计制作网站模板
  • 网站的底部导航怎么做/网站关键词优化
  • 如何搭建网站建设环境/拉新推广
  • 固始做网站的公司/如何建立一个自己的网站
  • 做网站的规范/seo优化软件哪个好
  • 昆明建站专家/新乡seo网络推广费用
  • wordpress自动保存图片/seo接单一个月能赚多少钱
  • 上海网站设计哪家好/建立网站有哪些步骤
  • 设计一份企业网络的组网方案/seo是搜索引擎吗
  • 公司网页如何建立/seo顾问阿亮
  • 江苏省建设工程一站式申报网站/seo咨询服务
  • 网站 linux 服务器配置/seo的工具有哪些
  • 网站阴影/电商平台运营方案思路
  • 廊坊网站建/短视频剪辑培训班速成
  • 武汉专业做网站的公司/天津网站快速排名提升
  • 网站空间费/优化防控举措