书香阁 > 游戏竞技 > 编程之战 > 第一百零八章 莫斯科的陌生人(下)

第一百零八章 莫斯科的陌生人(下)(1 / 1)

字符串中的第一个字符,如果它出现在子序列中,那么它肯定是位于第一位置的,而不可能是第二,第三。

比如“abc”的第一个字符“a”,它在子序列“ac”中,就是处于第一位。

这个问题的关键在于,找出子序列中,始终出现在第一位的字符,它就是原字符串的第一个字符。

[“N“,“C“,“L“]

[“I“,“O“,“A“]

[“C“,“O“,“S“]

[“I“,“C“,“O“]

[“O“,“L“,“S“]

这五个子序列,满足这个条件的第一个字符是“N”,所以它就是原字符串的第一个字符。

然后,去掉“N”在子序列中的所有存在,继续找始终出现在第一位的字符。

[“C“,“L“]

[“I“,“O“,“A“]

[“C“,“O“,“S“]

[“I“,“C“,“O“]

[“O“,“L“,“S“]

可以发现“I”满足条件,而“C”不满足,因为它在第四个子序列中,出现在了第二的位置。

去掉“I”在子序列中的所有存在,继续查找。

[“C“,“L“]

[“O“,“A“]

[“C“,“O“,“S“]

[“C“,“O“]

[“O“,“L“,“S“]

“C”满足条件,去掉存在,继续查找。

[“L“]

[“O“,“A“]

[“O“,“S“]

[“O“]

[“O“,“L“,“S“]

“O”满足条件,去掉存在,继续查找。

[“L“]

[“A“]

[“S“]

[]

[“L“,“S“]

“L”满足条件,去掉存在,继续查找。

[]

[“A“]

[“S“]

[]

[“S“]

“A”满足条件,去掉存在,继续查找。

[]

[]

[“S“]

[]

[“S“]

“S”满足条件,去掉存在。

[]

[]

[]

[]

[]

此时,所有子序列均为空,查找结束。

然后,将这些满足条件的所有字符,依次缀连在一起,就能获得重要线索。

“NICOLAS(尼古拉斯)”。

“就是你了!”

杨成得出了结论,并没有停止思索。

他发现这个算法有一个前提,那就是,原字符串要求没有重复的字母出现。

如果有重复的字母,那这个算法就会失效。

换句话说,这个前提降低了问题的难度。

另外,给定的子序列是充足的,足以构成一个完整的字符串,这也是能够解题的关键。

请记住本书首发域名:booktxt.net。顶点小说手机版阅读网址:m.booktxt.net

最新小说: 火影中的学习大师 小倾心 下路禁止秀恩爱[电竞] 变身反派少女 北地枪王张绣 穿成病弱反派后 召唤玩家后我成了海王 全职召唤法师 木叶之赚钱养家 从乡村球队走向豪门列表