2016-01-22 367 views
1

如果x不等於y,則x是字符串y的前綴,如果存在xz = y且x是合適的 前綴。字符串的前綴

只是想確保我正確理解這個概念。

例如,如果有字符串y =「abracadabra」是否意味着有可能的前綴負載? 所以,如果x是一個前綴,那麼x可以等於「a」,「ab」,「abr」或甚至「abracadabra」,但在這種情況下,當x = y時,它現在稱爲不正確的前綴,據我所知。但是,我不確定最後一部分x = y是否仍然可以被認爲是前綴?

如果沒有成員是另一個 成員的正確前綴,則語言無前綴。

再次,不確定我是否正確理解它。 例如,如果有一種語言=「你好,世界!我的名字是安德魯」,我認爲,由於每個成員的開始彼此不同,所以它是無前綴的。但是,如果我們有「你好,世界!你好嗎?」這種語言不再是無前綴的,因爲「H」是「你好」和「如何」的前綴。我的思維方式是正確的還是我誤解了一些東西?

我正在閱讀的書中沒有例子,它似乎是一個容易的話題,所以我想這可能是我找不到更詳細的解釋的原因。不過,我只是想確保我不會誤解任何事情。

我將不勝感激所有的答案。謝謝。

回答

5

是,「abracadabra」是「abracadabra」的前綴,但不是正確的 - 「a」,「ab」,「abr」,...,「abracadabr」是「abracadabra」 。 您的語言示例有點令人困惑。通常,語言被定義爲集合的單詞/字符串,但是您只給出一個大字符串作爲語言示例。

所以,一種語言可能是集合L1 = {「a」,「b」,「ab」}。 但是,這種語言是而不是前綴無關,因爲「a」在L1中,並且是「ab」的正確前綴,這也在L1中。

根據您給出的定義,語言L2 = {「abra」,「cada」,「bra」}是一個無前綴語言的示例:「abra」不是「cada」的前綴或如果「abra」或「bra」和「bra」不是「abra」或「cada」的前綴,「bra」,「cada」不是前綴。

相關問題