要从两个字符串中删除的字符数最少,以使其成为字谜
Minimum no of characters to be deleted from both the strings to make it anagram
我必须找到要删除的最小字符数才能使两个字符串字谜,但我的代码没有给出所需的确切值:
我的代码:
int main() {
int arr[26]={0};
int i,cont=0;
char a[10000];
char b[10000];
cin>>a;
cin>>b;
int l1=strlen(a);
int l2=strlen(b);
for(i=0;i<l1;i++)
arr[a[i]-'a']+=1;
for(i=0;i<l2;i++)
arr[b[i]-'a']-=1;
for(i=0;i<26;i++)
{
if(arr[i]!=0)
{
cont=cont+abs(arr[i]);
}
}
cout<<cont;
return 0;
}
对我的代码的解释:
我在其中创建了一个26
内存位置的数组,将所有内存位置初始化为0
。然后我生成包含字符arr[i]
位置,如果我们将其减去 'a'
,它将给出确切的位置:就像arr[i]='a'
'a'-a'=0
一样,对于第一个字符串,我加 1 给它,对于另一个字符串,我减去 1 的结果是我得到了那些不匹配的位置或字母,我正在计算它们以获得答案。
但是对于这个测试用例:
fcrxzwscanmligyxyvym // First string
jxwtrhvujlmrpdoqbisbwhmgpmeoke //Second string
输出 :
30
无法获得正确的输出
您的for
循环扫描输入字符串的前 26 个字符,尽管这些字符串可能短于 26 个字符或长于 26 个字符...
在javascript中,你可以这样做。
var input ="accfgilmmnrsvwxxyyyznbddeeghhijjklmmmooppqrrstuvwwx";
var str1, str2, arr =[], l1, l2, t1, t2;
arr = input.trim().split('n');
str1 = arr[0].toLowerCase();
str2 = arr[1].toLowerCase();
if(str1.length>str2.length){
temp = str1;
str1 = str2;
str2 = temp;
}
l1 = str1.length;
l2 = str2.length;
var n=0;
for(var i=0; i<l1; i++){
if(str2.indexOf(str1[i]) != -1){
var j = str2.indexOf(str1[i]);
str2 = str2.slice(0, j) + str2.slice(j+1);
n++;
}
}
console.log(l1+l2-n-n);
int numberNeeded(String first, String second) {
int[] map=new int[255];
int len1=first.length();
int len2=second.length();
for(int i=0;i<len1;i++)
map[(int)first.charAt(i)]++;
for(int i=0;i<len2;i++)
map[(int)second.charAt(i)]--;
int count=0;
for(int i=0;i<255;i++)
{
count=count+Math.abs(map[i]);
}
return count;
}
在这里找到你做错了什么
相关文章:
- 查找字符在两个索引之间出现的次数
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 函数返回两个字符串的第一个常用字符
- 在函数中连接两个字符,并在 C++ 中返回输出
- 为什么要更改这两个代码的输出"&"字符?
- 舍入 QDecDouble 值,精度最多为两个字符
- 计算两个字符序列
- 在c++中连接两个字符
- 查找和比较两个字符串中的字符
- 为什么C++中不允许连接两个常量字符*?
- 如何使用排序和比较这两个函数在 c++ 中对字符数组进行排序?
- 有没有办法我可以从 istringstream 中读取两个字符
- 如何查找两个字符串 c++ 中常用字符的数量
- 如何查看两个字符变量是否相等
- 使用位于 C 字符串中的两个字符*获取子字符串
- C++ std::string 中是否有任何函数可以计算两个字符串的相同起始字符的总数或任何最佳方法
- 重命名两个目录中的文件名,如果它们之间的某些字符匹配 - 矢量下标超出范围
- 比较两个字符的问题
- 如何修复密码条目,它一次输入两个字符