我正在实现一个算法,它将在CSV文件中搜索具有用户输入的前缀的列的字符串.在找到第一搜索结果之后,用户可以输入不同的前缀来执行第二搜索.列号只指定一次,并且在后续搜索期间只允许更改前缀.这将一直持续到用户输入"End".
Example of search:个
File Data:个
1, "Adam", "Computer Science"
2, "Liza", "Condensed Matter Physics"
3, "Bob", "Electrochemistry"
4, "Eva", "Material Culture"
Search parameters:个
column: 3, prefix: "Co"
Search result:个
1, "Adam", "Computer Science"
2, "Liza", "Condensed Matter Physics"
My algorithm must meet specific conditions:个
- 每次搜索时未读取文件中的所有行
- 不将所有文件数据存储在内存中(不管它是字节数组还是包含所有文件数据的任何其他 struct )
- 不编辑文件,也不创建其他文件(也不使用db)
事实证明,对于每个搜索操作,我们必须处理整个文件,因为文件中的任何字符串都可以具有指定的前缀.如何才能在不违反上述条件的情况下实现这一点?也许你知道在这种情况下可以使用的算法?
根据我的猜测,无论如何我们都需要处理整个文件.这意味着要么在每次搜索时读取文件中的所有行,要么将其完全存储在内存中,以便排除对文件的访问并使用此 struct .这两个选项都违反了问题的条件.