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

昆明做网站软件做面包的公司网站

昆明做网站软件,做面包的公司网站,wordpress虚拟商城,模块建筑题目 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb 操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并…

题目

如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 :
操作 1:交换任意两个 现有 字符。
例如,abcde -> aecdb
操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。
例如,aacabb -> bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a )
你可以根据需要对任意一个字符串多次使用这两种操作。
给你两个字符串,word1 和 word2 。如果 word1 和 word2 接近 ,就返回 true ;否则,返回 false 。

一、代码实现

func closeStrings(word1 string, word2 string) bool {// 边界条件:长度不同直接返回falseif len(word1) != len(word2) {return false}// 统计字符频率count1, count2 := [26]int{}, [26]int{}for _, c := range word1 { count1[c-'a']++ }for _, c := range word2 { count2[c-'a']++ }// 检查字符集合是否相同for i := 0; i < 26; i++ {if (count1[i] > 0 && count2[i] == 0) || (count2[i] > 0 && count1[i] == 0) {return false}}// 频率排序后比较sort.Ints(count1[:])sort.Ints(count2[:])return slices.Equal(count1[:], count2[:])
}

二、算法分析

1. 核心思路
  • 操作特性分析
    操作1允许任意交换字符位置(字符顺序无关)
    操作2允许字符间的全局替换(频率分布可交换)

  • 数学本质
    两字符串必须满足:
    (1) 字符集合完全相同
    (2) 排序后的频率序列相同

2. 关键步骤
  1. 长度验证:长度不同直接返回false(操作无法改变字符串长度)
  2. 字符存在性检查:统计字符出现情况,确保双方字符集合一致
  3. 频率可交换验证:对频率数组排序后比对,允许通过操作2调整频率分布
3. 复杂度
指标说明
时间复杂度O(n)两次遍历统计+两次O(26)排序
空间复杂度O(1)固定长度的频率数组

三、图解示例

在这里插入图片描述

四、边界条件与扩展

1. 特殊场景处理
  • 全相同字符不同频率word1="a", word2="aa" → 长度不同直接false
  • 异构字符相同频率word1="abc", word2="xyz" → 字符集合不同返回false
  • 全零频率数组:仅当两字符串都为空时成立(题目约束长度≥1)
2. 多语言实现
# Python实现(集合+排序)
def closeStrings(word1, word2):if len(word1) != len(word2): return Falsec1, c2 = Counter(word1), Counter(word2)return c1.keys() == c2.keys() and sorted(c1.values()) == sorted(c2.values())
// Java实现(数组优化)
public boolean closeStrings(String word1, String word2) {if (word1.length() != word2.length()) return false;int[] cnt1 = new int[26], cnt2 = new int[26];for (char c : word1.toCharArray()) cnt1[c-'a']++;for (char c : word2.toCharArray()) cnt2[c-'a']++;for (int i=0; i<26; i++) if ((cnt1[i]==0) != (cnt2[i]==0)) return false;Arrays.sort(cnt1);Arrays.sort(cnt2);return Arrays.equals(cnt1, cnt2);
}
3. 算法对比
方法时间复杂度空间复杂度适用场景
哈希表+排序法O(n)O(1)通用字符集
暴力枚举法O(n²)O(1)教学演示
位图压缩法O(n)O(1)内存极端受限场景

五、总结与扩展

1. 核心创新点
  • 集合存在性验证:通过字符存在位图快速排除异构字符集
  • 频率可交换性:排序操作将离散频率分布转化为可比序列
2. 数学证明

设字符串字符集合为S,频率分布为F。当且仅当:

  • S₁ = S₂(字符集合相同)
  • sorted(F₁) = sorted(F₂)(频率可排列)时,两字符串可通过所述操作相互转换
3. 扩展应用
  • 变位词检测:判断是否存在字符重组可能
  • 基因序列分析:检测碱基分布的相似性
  • 资源调度优化:验证任务分布的可调整性

文章转载自:

http://I7qyEfF9.hxpsp.cn
http://2nlSgTvl.hxpsp.cn
http://aoUGj5q0.hxpsp.cn
http://4kUN7rry.hxpsp.cn
http://37a7BIL7.hxpsp.cn
http://dtmc9Ypt.hxpsp.cn
http://DmcGMHjv.hxpsp.cn
http://fvBc6eOe.hxpsp.cn
http://F4c07cfV.hxpsp.cn
http://KG9qJNci.hxpsp.cn
http://1eHdrezD.hxpsp.cn
http://WOUHpym2.hxpsp.cn
http://SUvnV1Eq.hxpsp.cn
http://k8I2uZCD.hxpsp.cn
http://bMxG0sdf.hxpsp.cn
http://xrZp1WV2.hxpsp.cn
http://gLBsiA52.hxpsp.cn
http://R79UZuYF.hxpsp.cn
http://9YMMIOgx.hxpsp.cn
http://CEz2RUCw.hxpsp.cn
http://7yGKGcjD.hxpsp.cn
http://l0G1hxmp.hxpsp.cn
http://kBQ0IJ1j.hxpsp.cn
http://fQCVqEkJ.hxpsp.cn
http://lkRi3kcb.hxpsp.cn
http://OwrF0QSg.hxpsp.cn
http://F4dK1ms5.hxpsp.cn
http://hkbQolrU.hxpsp.cn
http://ANqbEtVl.hxpsp.cn
http://TAJutQfd.hxpsp.cn
http://www.dtcms.com/wzjs/721516.html

相关文章:

  • zhon中国建设会计学会网站南京seo按天计费
  • orchard可以做哪些网站个人站长怎么样做网站才不会很累
  • 淮北建站做吉祥物设计看什么网站
  • 设计师常用的网站湖南做网站找谁
  • 专做polo衫的网站泰州网页设计需要多少钱
  • 湘潭做网站价格 q磐石网络电子商务网站建设实训作业
  • 网站开发策略wordpress+添加版权
  • 西部网站建设建网站的小软件
  • 长春880元网站建设网站为什么要服务器
  • 精美企业网站公司想推广做网站有用
  • cms进行网站开发昆明做个人网站
  • 做公司网站 需要注意什么网站建设与维护 目录
  • 如何给网站添加cnzz专业网站制作流程
  • 手机网站建站多少钱外贸网站建站用什么意思
  • 烟台网站建设比较大的垂直网站导航是谁做的
  • 网站重新接入备案免费个人博客建站
  • wordpress网站做成小程序wordpress页面教程
  • 建网站 广州商务互联 网站
  • 湛江网站建设皆选小罗24专业网站改版介绍
  • 百度一下做网站河南网站制作工作室
  • 一个网站建设的目标类似于众人帮的做任务赚佣金网站
  • 建立企业网站案例展示在网站中的作用
  • 高端网站建设制作网站建设推广99元
  • 如何做免费的公司网站规模以上工业企业是指什么
  • 自学网站建设需要什么学历哪些做营销型网站做的好
  • 网站标题关键词自建网站流程
  • 班服定制网站网站的页面
  • 深圳外贸网站推广公司北京给网站做系统的公司名称
  • 许昌市做网站wordpress 模板丢失.
  • 班级做网站人的叫什么ppt做的模板下载网站