c++ - 关于 C++ 中 anagram 相关问题的问题
问题描述
所以我被要求解决这个问题——
“给定两个字符串,a 和 b,长度可能相同,也可能不同,确定制作 a 和 b 字谜所需的最小字符删除数。可以从任一字符串中删除任何字符。”
例如——如果字符串是 abc & cde ,答案是 4。
我编写了代码,但它似乎不适用于所有测试用例。谁能指导我?
#include<iostream> #include<string> using namespace std; int main(){ string s1; string s2; cin>>s1; cin>>s2; int count=0; int arr[26]{0}; for(int i{0};i<s1.length();i++){ arr[static_cast<int>(s1.at(i))-97]+=1; } for(int i{0};i<s2.length();i++){ arr[static_cast<int>(s2.at(i))-97]-=1; } for(auto range : arr){ if(range!=0){ count++; } } cout<<count; return 0; }
解决方案
推荐阅读
- c# - 我应该如何使用巨大的表动态存储查询数据?
- r - R:将向量的第 i 个元素与所有先前的元素进行比较的最快方法
- postgresql - 如果满足某些条件,如何自动更新表
- c# - 如果不存在元素,如何在 MongoDB C# 驱动程序中更新/插入文档的子数组
- c++ - 当传递无效指针时,`ferror(FILE *)` 和 `std::ferror(FILE *)` 的行为是什么?
- python - 如何在pytest中对导入进行monkeypatch?
- python - 在 tf.Session() 内循环
- java - 如何让 Apache Tika 像字节数组一样使用 InputStream 或 File?
- google-cloud-platform - 谷歌云数据区域是本地的吗?
- python - python websocketapp on_message()方法不起作用