如何同时运行两个循环-C++

How can I run two loops simultaneously - C++?

本文关键字:两个 循环 -C++ 何同时 运行      更新时间:2023-10-16

如果我想检查一个字符串是否是回文,我如何使用两个同时循环来实现它,以便在最短的行数内完成?

由于这几乎肯定是一项家庭作业,因此这里对这种方法进行了无代码解释。

您不需要两个循环,您需要两个循环变量。在单词开头开始第一个字符,在单词末尾开始第二个字符,比较循环索引处的字符,如果它们不同,则返回false。如果字符相同,则通过向前推进前索引和向后推进后索引来进行下一次迭代。当前索引等于或大于后索引时停止。

以下是允许您在单个循环中使用两个循环变量的语法:

for (int front = 0, back = s.size() ; front < back ; front++, back--) ...

免责声明:这只是一个线程替代方案,我不建议使用此解决方案

您可以启动两个线程并使用queue

第一个线程从一开始就进行迭代,并将元素推入队列。

第二个从末尾开始,从队列的前面弹出元素(如果它们匹配的话)。

当元素不匹配或达到单词中间时停止。如果元素不匹配,或者队列末尾不是空的,那么它就不是回文。

请注意,这需要一些认真的同步。不要这样做,只是正常解析。。。我怀疑是否有任何业绩增长。