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

中国教育网站官网东莞seo优化推广

中国教育网站官网,东莞seo优化推广,网件路由器app,长春建站平台其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1操作 1 的本质#xff1a;字符可以任意排列 2.2操作 2 的本质#xff1a;出现次数是可以交换的 2.… 其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1操作 1 的本质字符可以任意排列 2.2操作 2 的本质出现次数是可以交换的 2.3算法思路 三、代码 四、总结 前言 这是力扣的1657题难度为中等解题方案有很多种本文讲解我认为最奇妙的一种。 一、题目描述 如果可以使用以下操作从一个字符串得到另一个字符串则认为两个字符串 接近  操作 1交换任意两个 现有 字符。 例如abcde - aecdb操作 2将一个 现有 字符的每次出现转换为另一个 现有 字符并对另一个字符执行相同的操作。 例如aacabb - bbcbaa所有 a 转化为 b 而所有的 b 转换为 a  你可以根据需要对任意一个字符串多次使用这两种操作。 给你两个字符串word1 和 word2 。如果 word1 和 word2 接近 就返回 true 否则返回 false 。 示例 1 输入word1 abc, word2 bca 输出true 解释2 次操作从 word1 获得 word2 。 执行操作 1abc - acb 执行操作 1acb - bca示例 2 输入word1 a, word2 aa 输出false 解释不管执行多少次操作都无法从 word1 得到 word2 反之亦然。 示例 3 输入word1 cabbba, word2 abbccc 输出true 解释3 次操作从 word1 获得 word2 。 执行操作 1cabbba - caabbb 执行操作 2caabbb - baaccc 执行操作 2baaccc - abbccc示例 4 输入word1 cabbba, word2 aabbss 输出false 解释不管执行多少次操作都无法从 word1 得到 word2 反之亦然。提示 1 word1.length, word2.length 105word1 和 word2 仅包含小写英文字母 二、题解 本题的关键就是看清楚两个操作的本质 2.1操作 1 的本质字符可以任意排列 我们可以随意洗牌。 例如示例1的word1 abc, word2 bca (把一叠扑克洗成另一叠扑克。 如果字符一样但对应的出现次数不一样呢这就需要用到操作 2 了。 2.2操作 2 的本质出现次数是可以交换的 以示例 3 为例。统计 s cabbba 的字符出现次数 a 出现 2 次。b 出现 3 次。c 出现 1 次。 我们可以把 a 都变成 b同时把 b 都变成 a。 这相当于交换 a 和 b 的出现次数得到 a 出现 3 次。b 出现 2 次。c 出现 1 次。 然后交换 a 和 c 的出现次数得到 a 出现 1 次。b 出现 2 次。c 出现 3 次。 这便是字符串 t abbccc 的字符出现次数。 所以「出现次数」是可以任意排列的。 2.3算法思路 判断 word1 和 word2 的长度是否一样如果不一样直接返回 false。判断 word1 和 word2 的字符集合是否一样如果不一样直接返回 false。例如 word1 中有字符 abcword2 中有字符 zxc我们无论如何都不能把 word1 变成 word2 。判断 word1 的字符出现次数的集合是否等于 word2 的字符出现次数的集合等于返回 true不等于返回 false。注意集合可以有相同元素比如 aabbbccc 对应的集合就是 {2,3,3}。 三、代码 class Solution {public boolean closeStrings(String word1, String word2) {if (word1.length() ! word2.length()) {//判断长度return false;}int[] count1 new int[26], count2 new int[26];for (char c : word1.toCharArray()) {count1[c - 97];}for (char c : word2.toCharArray()) {count2[c - 97];}for (int i 0; i 26; i) {//判断字符是否相等if (count1[i] 0 count2[i] 0 || count2[i] 0 count1[i] 0) {return false;}}Arrays.sort(count1);Arrays.sort(count2);return Arrays.equals(count1, count2);//判断集合元素是否相等} } 下面是简化版代码但是上面的代码性能更好如果两个字符串不相等则直接不走下面的逻辑。 class Solution {public boolean closeStrings(String word1, String word2) {int[] count1 new int[26], count2 new int[26];for (char c : word1.toCharArray()) {count1[c - 97];}for (char c : word2.toCharArray()) {count2[c - 97];}for (int i 0; i 26; i) {if (count1[i] 0 count2[i] 0 || count2[i] 0 count1[i] 0) {return false;}}Arrays.sort(count1);Arrays.sort(count2);return Arrays.equals(count1, count2);} } 四、总结 复杂度分析 时间复杂度O(max⁡{n1,n2}Clog⁡C)其中 n1 和 n2 分别是字符串 word1 和 word2 的长度C26 是字符集大小。 空间复杂度O(C)。
http://www.hkea.cn/news/14297877/

相关文章:

  • 重庆奉节网站建设公司上海自助建站工具
  • 网站被挂黑链了带icp备案的网站
  • .net 网站中多线程泰安人才网电焊工
  • 私人做网站费用用html写一个个人介绍
  • 河北省住房与建设厅网站首页dede网站仿站经典工具
  • 廊坊网站建设推广服务网络品牌是什么
  • 石家庄做网站建设的公司排名制作网站模板的发展空间
  • 网站制作多少费用海外服务器租赁
  • seo网站推广的主要目的关键词歌词林俊杰
  • 做曖网站html网站支付链接怎么做的
  • app开发 网站建设做网站主要是做什么
  • 电子商务网站建设及推广方案论文推广渠道有哪些方式
  • 东省住房和城乡建设厅网站沈阳关键词网站排名
  • jquery特效网站地方房地产网站seo实战案例分享
  • 做ppt找图片的网站自己建网站免费
  • 做鲜花配送网站需要准备什么网站维护费一般多少钱
  • 网站建设地带制作企业网站的报告
  • 网站表单模板营销型网站
  • 二手书交易网站开发现状上海牛巨微seo关键词优化
  • 蓝色脚手架织梦企业网站模板wordpress移动顶部导航
  • 备用网站怎么做优秀中文企业网站欣赏
  • 哪些大型网站用mysqlhtml网页制作房地产页面
  • 服装建设网站的原因人网站建站
  • 福建路桥建设有限公司网站想做个网站 怎么做
  • 网站平台报价模板下载微信小程序注册后怎么登录
  • 网站怎么样做不违规青海建设厅质检站网站
  • 建设外贸企业网站松江团购做网站
  • 网页游戏网游seo排名优化软件
  • 南宁网站设适合小学生的新闻事件
  • 网站开发培训深圳兰州网络营销推广价格