原题链接:使字符串不同字符的数目相等

给你两个下标从 0 开始的字符串 word1 和 word2 。

一次 移动 由以下两个步骤组成:

  • 选中两个下标 i 和 j ,分别满足 0 <= i < word1.length 和 0 <= j < word2.length ,

  • 交换 word1[i] 和 word2[j] 。

如果可以通过 恰好一次 移动,使 word1 和 word2 中不同字符的数目相等,则返回 true ;否则,返回 false 。

示例 1:
输入:word1 = “ac”, word2 = “b”
输出:false
解释:交换任何一组下标都会导致第一个字符串中有 2 个不同的字符,而在第二个字符串中只有 1 个不同字符。

示例 2:
输入:word1 = “abcc”, word2 = “aab”
输出:true
解释:交换第一个字符串的下标 2 和第二个字符串的下标 0 。之后得到 word1 = “abac” 和 word2 = “cab” ,各有 3 个不同字符。

示例 3:
输入:word1 = “abcde”, word2 = “fghij”
输出:true
解释:无论交换哪一组下标,两个字符串中都会有 5 个不同字符。

提示:

  • 1 <= word1.length, word2.length <= 105

  • word1 和 word2 仅由小写英文字母组成。

 public static boolean isItPossible(String word1, String word2) {int[] cnt1=new int[26];for (int i = 0; i < word1.length(); i++) {cnt1[word1.charAt(i)-'a']++;}int[] cnt2=new int[26];for (int i = 0; i < word2.length(); i++) {cnt2[word2.charAt(i)-'a']++;}int num1=0,num2=0;for (int i=0;i<26;i++){num1+=cnt1[i]==0?0:1;num2+=cnt2[i]==0?0:1;}for (int i=0;i<26;i++){if (cnt1[i]==0) continue;for (int j=0;j<26;j++){if (cnt2[j]==0) continue;if (i==j){if (num1==num2){return true;//如果word1和word2的字符种类相等 且 存在相同字符的话,直接交换这两个相同的字符,交换之后字符种类还是相等的。这就满足题意,恰好一次交换使得字符种类相等。}}else {if (num1-(cnt1[i]==1?1:0)+(cnt1[j]==0?1:0)==num2-(cnt2[j]==1?1:0)+(cnt2[i]==0?1:0)){return true;}}}}return false;}

第327场周赛6284. 使字符串总不同字符的数目相等相关推荐

  1. 【力扣周赛】第347场周赛

    [力扣周赛]第347场周赛 6457. 移除字符串中的尾随零 题目描述 解题思路 2711. 对角线上不同值的数量差 题目描述 解题思路 6455. 使所有字符相等的最小成本 题目描述 解题思路 64 ...

  2. 力扣 第314场周赛 Q3 使用机器人打印字典序最小的字符串【难度:中等,rating: 1953】(栈+贪心)

    题目链接 https://leetcode.cn/problems/using-a-robot-to-print-the-lexicographically-smallest-string/ 题目来源 ...

  3. 当单调栈遇到了前前缀和(Leetcode 2281. 巫师的总力量和、力扣第 294 场周赛第 4 题)

    2281. 巫师的总力量和(力扣第 294 场周赛第 4 题) 这道题做起来比较复杂.需要单调栈.前缀和.数学计算. 一句话概括思路:在 907. 子数组的最小值之和 中,是对每个 min 乘以管辖范 ...

  4. <力扣第292场周赛第一题>6056. 字符串中最大的 3 位相同数字

    前言 人生如逆旅,我亦是行人.----苏轼<临江仙·送钱穆父> 一.题: 给你一个字符串 num ,表示一个大整数.如果一个整数满足下述所有条件,则认为该整数是一个 优质整数 : 该整数是 ...

  5. LeetCode第 227 场周赛题解

    LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...

  6. 【力扣周赛】第346场周赛

    [力扣周赛]第346场周赛 6439. 删除子串后的字符串最小长度 题目描述 解题思路 6454. 字典序最小回文串 题目描述 解题思路 6441. 求一个整数的惩罚数 题目描述 解题思路 6439. ...

  7. 算法周赛笔记(8月第1周)— LeetCode 第253场周赛

    文章目录 小结 题目 1961 1962 1963 1964 小结 本周只参加了一场LeetCode的周赛 还是先说战绩:2道题./(ㄒoㄒ)/~~ 这周情况比较特殊,周五下班的时候给了个紧急需求,周 ...

  8. LeetCode 第 59 场力扣夜喵双周赛(最短路径数+迪杰斯特拉、动态规划+最长公共前缀问题) / 第255场周赛(二进制转换,分组背包,子集还原数组(脑筋急转弯))

    第 59 场力扣夜喵双周赛 两道400多五百,后两道都写出代码来了,但是都有问题,哭辽- 还有刚开始第一道测试好慢,搞心态了 5834. 使用特殊打字机键入单词的最少时间 有一个特殊打字机,它由一个 ...

  9. [LeetCode周赛复盘] 第 324 场周赛20221218

    [LeetCode周赛复盘] 第 324 场周赛20221218 一.本周周赛总结 二. [Easy] 6265. 统计相似字符串对的数目 1. 题目描述 2. 思路分析 3. 代码实现 三.[Med ...

最新文章

  1. 2017年中国人工智能产业专题研究报告(完整版)
  2. V4L2学习 二 ----视频打开与保存简单流程
  3. 关于华硕主板“USB Devices Over Current Status Detected!”
  4. Blazor 中如何下载文件到浏览器
  5. 12.04 安装svn
  6. 动易CMS如何能实现直接粘贴把图片上传到服务器中
  7. 《网络基础》p84.interface gigabitethernet 0/0/0报错
  8. asio Tcp服务退出时崩溃bug
  9. 使用SpringBoot的优势
  10. vue-element-admin 框架结构粗解
  11. php订阅号发送消息,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题,_PHP教程...
  12. 顺丰快递商家寄件发货接口API类型和接入流程方案【快递100接口Demo】
  13. 支付系统 java_PaySystem
  14. PYNQ 采集计划(二)Socket服务端与客户端的搭建,pynq到pc的数据流传输
  15. 电子商务经过了十多年的发展 企业建站网站与域名选择的重要性
  16. 电视调试html页面有左边白边,网页顶部有白边
  17. 征服面试算法-2:算法应该怎么刷
  18. larvel 5.7命令行cmd常用命令
  19. 联想服务器 带外管理系统,联想服务器存储成就“数图”海量应用
  20. 关于读书 - 如何读书

热门文章

  1. 请假去面试,你怎么向老板说?
  2. Tor 在 linux上使用
  3. 注入神器-----SqlMap的使用
  4. no input file specified解决方法
  5. jQuery小游戏之锅打灰太郎
  6. C++中的var类型
  7. chrome 谷歌浏览器模拟各种手机设置userAgent
  8. 电脑没声音,喇叭上一个叉,显示无法找到输入输出设备(录制,耳机等等)
  9. 第九章 法律责任与法律制裁
  10. 英语美句-每日积累-03