c - 密码读取

标签 c algorithm

我需要编写一个算法来读取键盘流,直到获得正确的密码。

如果密码是ababac, 并且输入是 abababa,这意味着到目前为止它读取 ababa,现在它等待 c 解锁,如果出现 f 而不是 c,那么它会重新启动它的过程。

它很容易在 O(n^2) 中完成,但是我的老师要我们在 O(n) W.C 中完成,它能在这种复杂度下完成吗?!

最佳答案

我觉得网络版Knuth-Morris-Pratt algorithm会做的工作。不过,您必须存储和计算索引数组(在循环数组实现的情况下需要额外的 O(n) 内存)。

关于c - 密码读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9886188/

相关文章:

c - 为什么可以使用具有错误签名的比较函数调用 `qsort` 并且编译没有警告

c++ - 如何开始 Linux 编程

javascript - 如何拆分具有连续大写和小写字母的字符串(以获得分子的原子数)?

javascript - 通过将未通过测试的树节点映射到其子节点来 trim 树

algorithm - 如何使用 Bresenham 创建一条任意粗细的线?

c++ - 表示小波的数据结构

c - fscanf--尝试扫描int的txt文件,fscanf只读取1s

c - 在c中获取物理硬盘列表

c - 布冯针 pi 估计实验接近 pi,但未获得完美值

algorithm - 在二维数组中查找特定模式的最佳方法