当前位置: 首页 > 编程笔记 >

在C ++中制作两个不带字符删除的两个字符串字谜所需的最少操作数

沙星波
2023-03-14
本文向大家介绍在C ++中制作两个不带字符删除的两个字符串字谜所需的最少操作数,包括了在C ++中制作两个不带字符删除的两个字符串字谜所需的最少操作数的使用技巧和注意事项,需要的朋友参考一下

假设我们有两个长度相等的字符串,我们必须找到使两个字符串相符的最小数目的更改,而不删除任何字符。字谜是两个具有相同字符集的字符串。假设两个字符串为“ HELLO”和“ WORLD”,此处需要更改的数目为3,因为在这种情况下,三个字符不同。

这个想法很简单,我们必须找到第一个字符串中每个字符的频率,然后遍历第二个字符串,如果第二个字符串中的字符存在,则在频率数组中,然后降低频率值。如果频率值小于0,则将最终计数增加1。

示例

#include <iostream>
using namespace std;
int countAlteration(string str1, string str2) {
   int count = 0;
   int frequency[26];
   for (int i = 0; i < 26; i++){
      frequency[i] = 0;
   }
   for (int i = 0; i < str1.length(); i++)
   frequency[str1[i] - 'A']++;
   for (int i = 0; i < str2.length(); i++){
      frequency[str2[i] - 'A']--;
      if (frequency[str2[i] - 'A'] < 0)
      count++;
   }
   return count;
}
int main() {
   string s1 = "HELLO", s2 = "WORLD";
   cout << "Number of required alteration: " << countAlteration(s1, s2);
}

输出结果

Number of required alteration: 3
 类似资料:
  • 问题内容: 有没有一种快速的方法来删除Swift中String中的最后两个字符?我看到有一个简单的方法来删除最后一个字符作为明确指出这里。您知道如何删除最后两个字符吗?谢谢! 问题答案: 更新: Xcode 9•Swift 4或更高版本 字符串现在符合RangeReplaceableCollection,因此您可以直接在字符串中使用收集方法dropLast,因此不再需要扩展。唯一的区别是它返回一个

  • 问题内容: 我有这样的java字符串: 我想删除标签。我还有一些其他字符串,其中标签的长度更长,因此我想找到一种方法来删除“ <>”字符之间的所有内容,包括那些字符。 一种方法是使用将字符串与regEx进行比较的内置字符串方法,但是我不知道如何编写它们。 问题答案: 注意使用正则表达式时,解析HTML(由于其允许的复杂性),但是,对于“简单” HTML,以及简单的文本(文本没有字面建议或它)这将工

  • 问题内容: 我想删除两个字符之间以及字符本身之间的字符串,例如说: 我想替换“#?”之间所有出现的字符串 和“;” 并用字符将其删除。 由此 对此 我怎么能用Java做到呢? 问题答案: 使用正则表达式:

  • 问题内容: 我有一个SQL列,其中的条目是字符串。我需要在剪掉最后两个字符后显示这些条目,例如,如果该条目应输出。 我尝试研究TRIM,但看起来只有在我们知道最后两个字符是什么的情况下,它才能提供修剪功能。但就我而言,我不知道最后两个数字是什么,只需要丢弃它们即可。 简而言之,什么是MySQL字符串操作可以修剪字符串的最后两个字符? 我必须补充一点,字符串的长度不是固定的。它可以是9个字符,11个

  • 问题内容: 从字符串中删除最后一个字符的最快方法是什么? 我有一个像 我想删除最后一个’,’并取回剩下的字符串: 最快的方法是什么? 问题答案: 首先,我尝试没有空格,并得到一个错误结果。 然后,我添加一个空格并获得良好的结果:

  • 问题 你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。 解决方案 strip() 方法能用于删除开始或结尾的字符。 lstrip() 和 rstrip() 分别从左和从右执行删除操作。 默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符。比如: >>> # Whitespace stripping >>> s = ' hello world \n' >>> s.strip()