编程之战_第一百零八章 莫斯科的陌生人(下) 首页

字体:      护眼 关灯

上一章 目录 下一章

   第一百零八章 莫斯科的陌生人(下) (第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“]

加入书签 我的书架

上一章 目录 下一章