如何同时运行两个循环-C++
How can I run two loops simultaneously - C++?
如果我想检查一个字符串是否是回文,我如何使用两个同时循环来实现它,以便在最短的行数内完成?
由于这几乎肯定是一项家庭作业,因此这里对这种方法进行了无代码解释。
您不需要两个循环,您需要两个循环变量。在单词开头开始第一个字符,在单词末尾开始第二个字符,比较循环索引处的字符,如果它们不同,则返回false。如果字符相同,则通过向前推进前索引和向后推进后索引来进行下一次迭代。当前索引等于或大于后索引时停止。
以下是允许您在单个循环中使用两个循环变量的语法:
for (int front = 0, back = s.size() ; front < back ; front++, back--) ...
免责声明:这只是一个线程替代方案,我不建议使用此解决方案
您可以启动两个线程并使用queue
。
第一个线程从一开始就进行迭代,并将元素推入队列。
第二个从末尾开始,从队列的前面弹出元素(如果它们匹配的话)。
当元素不匹配或达到单词中间时停止。如果元素不匹配,或者队列末尾不是空的,那么它就不是回文。
请注意,这需要一些认真的同步。不要这样做,只是正常解析。。。我怀疑是否有任何业绩增长。
相关文章:
- 如何在C++中从两个单独的for循环中添加两个数组
- 如何在for循环中包含两个索引值的测试条件
- 如何使用OpenMP并行这两个循环
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 嵌套在循环中的两个循环的 big-O 表示法
- 使用一个循环与两个循环
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- C++声明双链表,使用两个 for 循环双向遍历列表并打印
- 当数组位于两个循环之间时,您可以调用数组的 void 函数吗?
- 两个循环内的多个文本文件
- 不确定这两个循环中的一个如何产生正确的输出
- 如何在游戏C++中运行两个循环
- 为什么需要两个循环范围来更改C++向量的这些元素
- 使用STL迭代器的两个循环
- 如何同时运行两个循环-C++
- 这两个循环在C++有什么区别
- 为什么当用-O3编译时,这两个循环都运行得同样快,但当用-O2编译时却没有
- 将一个循环分解为两个循环的性能
- OpenGL有两个循环,一个循环不起作用
- 优化我的read()循环C(两个循环合二为一)