2531. 使字符串总不同字符的数目相等

news/2024/11/8 6:40:11/

给你两个下标从 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 仅由小写英文字母组成。

class Solution {

public:

    bool isItPossible(string word1, string word2) {

        int cnt1[26]={0},cnt2[26]={0};

        for(char c:word1)cnt1[c-'a']++;

        for(char c:word2)cnt2[c-'a']++;

        for(int i=0;i<26;i++)if(cnt1[i])for(int j=0;j<26;j++)if(cnt2[j]){

            cnt1[i]--;cnt2[i]++;cnt1[j]++;cnt2[j]--;

            int x=0,y=0;

            for(int k=0;k<26;k++)if(cnt1[k])x++;

            for(int k=0;k<26;k++)if(cnt2[k])y++;

            if(x==y)return true;

            cnt1[i]++;cnt2[i]--;cnt2[j]++;cnt1[j]--;

        }

        return false;

    }

};

 


http://www.ppmy.cn/news/543735.html

相关文章

利用nodemcu刷写cc2531 zigbee网关 不用买ccdebug

nodemcu环境准备 1.下载刷写工具包&#xff1a; CC2531工具包&#xff1a;https://sumju.net/?attachment_id1918 2.下载Arduino软件&#xff1a; https://www.arduino.cc/download_handler.php?f/arduino-1.8.10-windows.zip 如果上面这个网址下载不了&#xff0c;可以用…

2531. 乘船

单点时限: 2.0 sec 内存限制: 256 MB 春暖花开&#xff0c;实验室集体去长风公园泛舟。 实验室有 n(1<N<2000) 个人&#xff0c;每个人重量为 ci. 长风公园的每艘船的载重量为 K, 每次最多乘两人。假设每个人只能坐一次船&#xff0c;那么至少需要多少艘船才能让实验室…

手把手教你如何通过CC2531抓取Zigbee包,并解析加密Zigbee包

文章目录 前言准备阶段使用步骤TiWsPcWireshark解析报文Zigbee 的加密 总结 前言 好久不见啊&#xff0c;大伙假期过得咋样&#xff1f; 最近我在研究 Zigbee ,使用了EFR32&#xff08;购买链接&#xff09;的开发板&#xff0c;之前也研究过一点,水了几篇文章&#xff0c;但…

POJ_2531

题目描述 这题主要题意难懂 题目大意&#xff1a;给定n个点并给出点与点之间的距离&#xff0c;请将点分为两个点集&#xff0c;使得两集合之间的距离最大 如&#xff1a;设点 i , j i,j i,j的距离为map[i][j]或者map[j][i] 点 1 &#xff0c; 2 &#xff0c; 3 1&#xff0c;2…

poj2531 DFS

本题题意&#xff1a;先给你说明有几个点&#xff0c;然后给你几个点的之间的距离&#xff0c;问将这些点分在两边&#xff0c;求点距离的最大值 dfs最怕的就是你的重复计算&#xff0c;一不小心把以前走过的路又走了一遍 例如本题卡我这么久的T,我因为是我剪的不够好&#xf…

poj2531

题目感觉是图的题。。但是做的是POJ简单搜索的专题&#xff0c;嗯&#xff0c;没有思路。。看了大神的代码才学会的&#xff0c;回溯dfs。。 等以后图论学好了&#xff0c;在回头用图论做&#xff0c;我在网上看到有大神用最大割来做&#xff0c;加星星了&#xff0c;等回头在…

hdu 2531

起初没有看懂题目&#xff0c;无处下手&#xff0c;就去翻翻别人的代码&#xff0c;才知道题目的意思&#xff0c;汗…… 简单的一般的广搜的变形&#xff0c;这个解释的比较详细http://blog.csdn.net/swm8023/article/details/6765219 虽然知道怎么做了&#xff0c;但是还是犯…

MSB2531产品简介

MSB2531主要用来做PND/车载导航板/车载核心板方案&#xff0c;主芯片规格为ARM Cortex-A7 32-bit RISC CPU,800MHz,内置三路LDO, 两路DC/DC,充电管理. GPS BaseBand, FM Transmitter, Class-D Amplifier, 立体声耳机驱动;DRAM memory支持16-bit LPDDR和8-bit DDR3, NAND interf…