假设我有一定数量的字符串,说n
,以随机顺序存储在一个数组中。有几个,比如m1
,是string1
和m2
的anagrams是string2
等等的anagrams。 将一个有效的算法分离出特定字符串的字符串并确定每个字符串的字符串数量会是多少?单独的不同字典
Q
单独的不同字典
3
A
回答
1
一个有趣的问题。我们对一个字谜的了解真的归结为两件事。
- 它们的长度相同。
- 它们由相同的字符组成。
确定第一个条件很简单,第二个,没那么多。通过首先按长度对字符串数组进行排序,可以限制必须执行第二次测试的字符串数量。
第二次测试似乎要求您不仅检查string1.contains(string2 [n]),还要确定它们在每个字符串中出现的次数相同。我可能想要一个字符串数组的副本,但我会把它作为一个char []数组,因为字符串是不可变的。然后我可以通过其组件字符对副本中的每个字符串进行排序。 Anagrams现在可以匹配string1 == string2。
0
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100],c[100],d[100];
char temp;
int i,j;
printf("Enter the first string\n");
gets(a);
printf("Enter the second string\n");
gets(b);
strcpy(d,a);
strcpy(c,b);
for(i=0;i<strlen(a);i++)
{
if(a[i]==' ')
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
a[strlen(a)]='\0';
for(j=0;j<strlen(b);j++)
{
if(b[j]==' ')
{
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
b[strlen(b)]='\0';
if(strlen(a)==strlen(b))
for(i=0;i<strlen(a);)
{
for(j=i;j<strlen(b);j++)
{
if(a[i]==b[j])
{
temp=b[i];
b[i]=a[i];
b[j]=temp;
i++;
break;
}
}
}
if(strcmp(a,b)==0)
printf("%s and %s are anagrams\n",d,c);
else
printf("%s and %s are not anagrams\n",d,c);
return(0);
}
相关问题
- 1. Python的去除不单独的字典发生字典键
- 2. python:重写基于单独字典的单个字典密钥
- 3. 同时在两个单独的字典上执行代码块
- 4. Python:单独打印字典键和值
- 5. 不同于字典
- 6. Python的 - 独特的字典
- 7. 不同的字典实现
- 8. Python的字典清单内(拉单独的值)
- 9. 创建使用循环Python字典而不定义单独
- 10. 加入由单独函数返回的字典,并将字典作为另一个字典中的值分配。
- 11. 如何cPickle转储并将单独的字典加载到同一个文件?
- 12. 单独的ID字段的单独列?
- 13. 单独的不同版本的网站
- 14. 相同的字典
- 15. 根据选择的单选按钮搜索不同的字典
- 16. 使用不同字典中的值连接字典
- 17. 将字典的行转换为单独的熊猫列
- 18. 如何比较字典的值(列表)与单独的列表?
- 19. 不同响应于单独的数据
- 20. 不同的柜台类型的字典
- 21. 列表或单独列表的词典?
- 22. 在python中保存字典作为单独参考的方法
- 23. Python从单独的脚本添加字典值运行
- 24. Python,从字典中打印单独的索引
- 25. 如何在单独的Python进程中共享一个字典?
- 26. Python:如何在单独的行中打印字典?
- 27. 在单独的XML标记中编写字典值vb.net
- 28. python3读取文本文件到单独的字典
- 29. Ansible从单独的文件填充字典值
- 30. 创建来自单独列表的字典列表