第327场周赛6284. 使字符串总不同字符的数目相等
原题链接:使字符串不同字符的数目相等
给你两个下标从 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. 使字符串总不同字符的数目相等相关推荐
- 【力扣周赛】第347场周赛
[力扣周赛]第347场周赛 6457. 移除字符串中的尾随零 题目描述 解题思路 2711. 对角线上不同值的数量差 题目描述 解题思路 6455. 使所有字符相等的最小成本 题目描述 解题思路 64 ...
- 力扣 第314场周赛 Q3 使用机器人打印字典序最小的字符串【难度:中等,rating: 1953】(栈+贪心)
题目链接 https://leetcode.cn/problems/using-a-robot-to-print-the-lexicographically-smallest-string/ 题目来源 ...
- 当单调栈遇到了前前缀和(Leetcode 2281. 巫师的总力量和、力扣第 294 场周赛第 4 题)
2281. 巫师的总力量和(力扣第 294 场周赛第 4 题) 这道题做起来比较复杂.需要单调栈.前缀和.数学计算. 一句话概括思路:在 907. 子数组的最小值之和 中,是对每个 min 乘以管辖范 ...
- <力扣第292场周赛第一题>6056. 字符串中最大的 3 位相同数字
前言 人生如逆旅,我亦是行人.----苏轼<临江仙·送钱穆父> 一.题: 给你一个字符串 num ,表示一个大整数.如果一个整数满足下述所有条件,则认为该整数是一个 优质整数 : 该整数是 ...
- LeetCode第 227 场周赛题解
LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...
- 【力扣周赛】第346场周赛
[力扣周赛]第346场周赛 6439. 删除子串后的字符串最小长度 题目描述 解题思路 6454. 字典序最小回文串 题目描述 解题思路 6441. 求一个整数的惩罚数 题目描述 解题思路 6439. ...
- 算法周赛笔记(8月第1周)— LeetCode 第253场周赛
文章目录 小结 题目 1961 1962 1963 1964 小结 本周只参加了一场LeetCode的周赛 还是先说战绩:2道题./(ㄒoㄒ)/~~ 这周情况比较特殊,周五下班的时候给了个紧急需求,周 ...
- LeetCode 第 59 场力扣夜喵双周赛(最短路径数+迪杰斯特拉、动态规划+最长公共前缀问题) / 第255场周赛(二进制转换,分组背包,子集还原数组(脑筋急转弯))
第 59 场力扣夜喵双周赛 两道400多五百,后两道都写出代码来了,但是都有问题,哭辽- 还有刚开始第一道测试好慢,搞心态了 5834. 使用特殊打字机键入单词的最少时间 有一个特殊打字机,它由一个 ...
- [LeetCode周赛复盘] 第 324 场周赛20221218
[LeetCode周赛复盘] 第 324 场周赛20221218 一.本周周赛总结 二. [Easy] 6265. 统计相似字符串对的数目 1. 题目描述 2. 思路分析 3. 代码实现 三.[Med ...
最新文章
- 2017年中国人工智能产业专题研究报告(完整版)
- V4L2学习 二 ----视频打开与保存简单流程
- 关于华硕主板“USB Devices Over Current Status Detected!”
- Blazor 中如何下载文件到浏览器
- 12.04 安装svn
- 动易CMS如何能实现直接粘贴把图片上传到服务器中
- 《网络基础》p84.interface gigabitethernet 0/0/0报错
- asio Tcp服务退出时崩溃bug
- 使用SpringBoot的优势
- vue-element-admin 框架结构粗解
- php订阅号发送消息,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题,_PHP教程...
- 顺丰快递商家寄件发货接口API类型和接入流程方案【快递100接口Demo】
- 支付系统 java_PaySystem
- PYNQ 采集计划(二)Socket服务端与客户端的搭建,pynq到pc的数据流传输
- 电子商务经过了十多年的发展 企业建站网站与域名选择的重要性
- 电视调试html页面有左边白边,网页顶部有白边
- 征服面试算法-2:算法应该怎么刷
- larvel 5.7命令行cmd常用命令
- 联想服务器 带外管理系统,联想服务器存储成就“数图”海量应用
- 关于读书 - 如何读书