我准备面试,那往往会拿出一个问题是这样的:选择一个数据结构存储在一个句子中的单词和其起始位置
用一句话主办(例如,歌曲是最好的歌曲)分解成单词和单词的第一个字母的索引,即“the” - 0,12; “歌” - 4,21; “是” - 9; “最好” - 16;选择一个数据结构来存储这些信息,并使用该数据结构重构句子。
我最初的尝试是将单词存储在散列表中,其中键是单词,值是位置数组。这是完全可行的,但在嵌套for循环和边界索引恼人的问题,在适当的位置等空间读取变得相当复杂。
我有代码为它做,所以如果有人想看我会发布(它很长,使铆接阅读!!)
无论如何,对我的问题:任何人都可以提出一个更有效的方式来表示和重建数据?我很想尝试另一种方式,但这是我到目前为止所做的所有
这可能不是一个好问题,因为它不符合'这是意见问题'测试。但是,您可以通过改写问题和/或张贴伪代码来获得更好的结果。 – 2012-04-10 01:12:55
如果重复这些词怎么办?你必须记下所有的位置吗? – noMAD 2012-04-10 01:20:51
@noMAD:是的,在我上面的例子中,“the”发生在位置0和12,“song”位于位置4和21等。使用这个信息,我必须重构句子 – cash22 2012-04-10 02:21:54