我有用于搜索字符数组唯一元素的代码。但它工作不正确。例如,在“ABCD”数组的情况下,我失去了“ABD”大小写。我该如何解决它?
#include <stdio.h>
#include <string.h>
void fun(char *str, int size, int depth)
{
int i = 0;
int j = 0;
int k = 0;
while (i < size - depth + 1)
{
j = i + 1;
while (j < size - depth + 2)
{
printf("%c", str[i]);
k = j;
while (k < j + depth - 1)
{
printf("%c", str[k]);
k++;
}
printf("\n");
j++;
}
i++;
}
}
int main(void)
{
char *str = "ABCD";
int i = 0;
while (i < strlen(str))
{
fun(str, strlen(str), i + 1);
i++;
}
return (0);
}
结果是:A A A A B B B C C D AB AC AD BC BD CD ABC ACD BCD ABCD
我需要:A B C D AB AC AD BC BD CD ABC ABD ACD BCD ABCD
因此,如您所见,有几个错误 - 开头重复单个字符和缺少 ABD 情况。如果字符串是“ABCDE”,则会缺少更多变体。
此代码应该可以解决问题:
#include <string.h>
#include <stdio.h>
void fun(char *str, char *data, int start, int end, int idx, int depth)
{
if (idx == depth)
{
for (int j = 0; j < depth; j++)
printf("%c", data[j]);
printf("\n");
return;
}
for (int i = start; i <= end && end - i + 1 >= depth - idx; i++)
{
data[idx] = str[i];
fun(str, data, i + 1, end, idx + 1, depth);
}
}
int main()
{
char *str = "ABCD";
int i = 0;
while (i < strlen(str))
{
char data[i + 1];
fun(str, data, 0, strlen(str) - 1, 0, i + 1);
i++;
}
return (0);
}
输出:
AB AC AD BC BD CD ABC ABD ACD BCD ABCD
并且还为“ABCDE”等工作。
问题内容: 在最近的一次采访中有人问我这个问题。 您将获得一个包含一百万个元素的数组。除了一个元素外,所有元素都是重复的。我的任务是找到独特的元素。 我的做法是要经过在整个数组循环,然后创建一个索引作为数组中和的数组中出现的次数。然后再次遍历我们的地图,并返回值为1的索引。 我说我的方法会花费时间。面试官告诉我要以低于复杂度的方式对其进行优化。我说过,我们不能,因为我们必须遍历具有一百万个元素的整
问题内容: 整数数组包含一些元素,以使每个元素比其前一个元素多1个或小于1个。现在给了一个数字,我们需要确定该数字在数组中首次出现的索引。需要优化线性搜索。它不是功课。 问题答案: 我的算法是这样的: p = 0 如果(A [p] == x)则idx = p并且算法完成,否则转到下一步 设置p + = | xA [p] | 转到2。 说A [p]> x。然后,由于A项增加或减少1,因此idx至少可
问题内容: 如何在上面的数组中松散搜索“ Last”一词? 上面的代码仅在指针与值中的所有内容完全匹配时才回显值的键,这是我不想要的。我想要这样的东西: 如果值包含单词“ Last”,我希望值的键回显。 问题答案: 要查找符合搜索条件的值,可以使用函数: 现在,数组将仅包含原始数组中包含单词 last (不区分大小写)的元素。 如果需要查找与条件匹配的值的键,则需要遍历数组: 现在,数组包含原始数
我正在写一个程序来跟踪学校的班级和学生。我有学校、教室和学生用品。学校包含教室对象的ArrayList,每个教室包含学生对象的ArrayList。 我试图在学校类中编写一个方法,使用字符串名称和字符串classroomName作为参数来删除学生。 这就是我到目前为止所做的: 我认为这不起作用,因为学生对象的ArrayList是在课堂上声明的。 是否有一种方法可以通过对象ArrayList搜索使用非
我有一个结构片。 以下是此文件的输出: 如何搜索此数组以获取所在的元素?
问题内容: 我正在尝试通过一个简单的示例应用程序学习Elasticsearch,该应用程序列出了与人相关的报价。映射示例如下所示: 一些示例数据可能看起来像: 我希望能够对单个引用使用querystring api,并返回匹配的人。例如,我可能想查找报价包含(此与这些)的人-应该返回“ A先生”而不是“ B先生”,依此类推。我该如何实现? 编辑1: 安德烈(Andrei)在下面的回答似乎可行,数据