LeetCode-859. 亲密字符串
2021/11/24 6:12:00
本文主要是介绍LeetCode-859. 亲密字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。
交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。
例如,在 "abcd" 中交换下标 0 和下标 2 的元素可以生成 "cbad" 。
示例 1:
输入:s = "ab", goal = "ba"
输出:true
解释:你可以交换 s[0] = 'a' 和 s[1] = 'b' 生成 "ba",此时 s 和 goal 相等。
示例 2:
输入:s = "ab", goal = "ab"
输出:false
解释:你只能交换 s[0] = 'a' 和 s[1] = 'b' 生成 "ba",此时 s 和 goal 不相等。
示例 3:
输入:s = "aa", goal = "aa"
输出:true
解释:你可以交换 s[0] = 'a' 和 s[1] = 'a' 生成 "aa",此时 s 和 goal 相等。
示例 4:
输入:s = "aaaaaaabc", goal = "aaaaaaacb"
输出:true
提示:
1 <= s.length, goal.length <= 2 * 104
s 和 goal 由小写英文字母组成
#include <iostream> #include <string> #include <unordered_map> using namespace std; class Solution { public: bool buddyStrings(string s, string goal) { int count = 0; unordered_map<char, int> hashMp1; unordered_map<char, int> hashMp2; bool isBigThanTwo = false; if (s.length() != goal.length()) { return false; } for (int i = 0; i < s.size(); i++) { if (hashMp1.count(s[i]) == 0) { hashMp1[s[i]] = 1; } else { hashMp1[s[i]]++; } if (hashMp2.count(goal[i]) == 0) { hashMp2[goal[i]] = 1; } else { hashMp2[goal[i]]++; } if (s[i] != goal[i]) { count++; } } unordered_map<char, int>::iterator it = hashMp1.begin(); while (it != hashMp1.end()) { if (hashMp1[it->first] > 1) { isBigThanTwo = true; } if (hashMp1[it->first] != hashMp2[it->first]) { return false; } it++; } if (isBigThanTwo && s == goal) { return true; } if (count == 2) { return true; } return false; } }; int main() { Solution* ps = new Solution(); cout << ps->buddyStrings("ab", "ba"); return 0; }
这篇关于LeetCode-859. 亲密字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升