首页 > 解决方案 > 关于 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++

解决方案


推荐阅读