gpt4 book ai didi

language-agnostic - 第一次通过成语

转载 作者:行者123 更新时间:2023-12-02 00:04:41 26 4
gpt4 key购买 nike

这是一个经典问题,其中必须处理元素列表,但第一个元素的处理方式必须与其余元素不同。例如打印一个字符串,使每两个字符之间有一个破折号。

这是一个相当糟糕的例子

    char *text = "hello";

for (int i = 0; i < strlen(text); i++) {

if (i == 0) {
printf("%c", text[i]);
} else {
printf("-%c", text[i]);
}
}

输出:

h-e-l-l-o

首先,这种情况是否有一个通用名称,以便我可以正确查找?

第二,当然,处理这类问题的更好方法是什么? “更好”是更少的代码行、更快的运行时间或更低的内存开销(最好是它们之间的妥协)。

以任何语言发布示例代码。

最佳答案

坚持使用您编写的原始 C,通常最好尽可能将特殊情况排除在循环之外,因为循环意味着重复相同的任务。我会把代码写成:

char *text = "hello";

printf("%c", text[0]);
for (int i = 1; i < strlen(text); i++){
printf("-%c", text[i]);
}

通常最后一个也可能是一种特殊情况,在这种情况下,您将循环直到 strlen(text) - 1。当然,如果您使用的是一种带有专门处理此问题的 API 的语言,那么请像在@TylerEaves 的回答中那样使用它们。我不知道此类问题的任何具体名称,但每当您调整循环边界时,请务必注意 off-by-one error。 .

关于language-agnostic - 第一次通过成语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com