如何計算字串公式的值

發布 科技 2024-07-19
2個回答
  1. 匿名使用者2024-02-13

    距離。 兩個字串 s1 和 s2 之間的差值可以通過計算它們的最大距離來確定。

    所謂距離:

    將 s1 和 s2 更改為同一字串需要執行以下最少運算元。

    將字元 ch1 轉換為 ch2

    刪除字元。

    插入字元。 例如。 s1

    和 s2=“1233”;

    那麼在s2中間插入4就可以得到12433,這與s1一致。

    即。 d(s1,s2)

    執行了插入操作)。

    距離的本質。

    計算兩個字串之間的距離 s1+ch1,s2+ch2 具有以下屬性:

    d(s1,””

    d(“”s1)

    s1|d(“ch1”,”ch2”)ch1

    ch2d(s1+ch1,s2+ch2)

    min(d(s1,s2)+

    ch1==ch2

    d(s1+ch1,s2),d(s1,s2+ch2) 第乙個性質是顯而易見的。

    第二性:

    由於我們定義了三個操作來充當距離的度量。

    因此,對於 CH1、CH2 可能僅操作。

    將 ch1 變成 ch2

    s1+ch1,然後刪除 ch1

    d1+d(s1,s2+ch2))

    S1+CH1 插入 CH2D

    d(s1+ch1,s2))

    2 和 3 的運算可以等同於:

    在 s2+ch2 後新增 ch1

    d=(1+d(s1,s2+ch2))

    刪除 s2+ch2 後面的 ch2

    d=(1+d(s1+ch1,s2))

    因此可以得到計算距離的性質2。

    複雜性分析。

    從上面的屬性 2 中,我們可以看到計算過程呈現出這樣的結構(假設每一層都標有當前計算的字串長度,並假設兩個字串長度都是 .

    n 正如你所看到的,問題的複雜性是指數級的。

    目標。 對於n次方,對於更長的字串,時間是無法忍受的。

    分析:在上面的結構中,我們發現了多次出現。

    n-1,n-1),n-1,n-2)……換句話說,結構具有重疊的子問題。 此外,還存在屬性 2 的最佳子結構。 符合動態規劃演算法的基本要素。

    因此,可以使用動態規劃演算法將複雜度降低到多項式水平。

    動態規劃求解。

    首先,為避免重複計數子問題,請新增兩個輔助陣列。

    一。 儲存子問題的結果。 m[s1|

    s2|其中 m[ij

    表示子字串。 s1(0->i)

    和。 s2(0->j)

    距離。 二。 儲存字元之間的距離。

    e[s1|,s2|其中。 e[

    i,js[i]s[j]

    三。 新的計算表示式。

    按性質獲得 1. m[

    m[s1i,0

    s1i|;m[

    0,s2js2j|;

    根據性質2得到。 m[i,j

    min(m[i-1,j-1]e[i,j

    m[i,j-1]

    m[i-1,j]

  2. 匿名使用者2024-02-12

    將字串拆分為字元,並將數字和運算子新增到堆疊中。

    然後,找到每個運算子後,出現另乙個運算子來比較優先順序,並彈出計算,括號不算運算子,左括號與右括號相遇彈出。

    注意優先順序。

    例如,2*5+3 4

    新增乙個數字 -->2*5+3 4

    進2,進*,進5,(剛好要進+找*比+優先順序),出2*5=10進10,進+,進3,進(因為優先順序高,不要彈出),進4,剛要進,找到最高優先順序)進3個4=0,進0,剛好要進,找到最高優先順序)出10+0=0

    進步,結束。

相關回答
9個回答2024-07-19

你好,我很高興你提問。 請看下面:

是表示一 (1) 的轉義字元。 >>>More

8個回答2024-07-19

public static void main(string args) {

string str1="abcdefghij"; >>>More

10個回答2024-07-19

標題的意思在樓上說,這裡有乙個**。

string ss="aabbccddeegggddd"; >>>More

17個回答2024-07-19

我們先來談談這個想法:

獲取此字串中的最後乙個。 location,即索引。 >>>More

16個回答2024-07-19

stuff 刪除指定長度的字元,並在指定的起點插入另一組字元。 >>>More