演算法競賽入門經典 第三章

2021-06-08 06:45:32 字數 791 閱讀 6402

最長回文子串:

當字串的長度比較小的時候:

attention:最好把陣列開在外面,如果開在main外面並且陣列太大,就會異常退出的。

//最長回文子串 

#include #include#include#define maxn 5000+10

char buf[maxn],s[maxn];

int main()

}printf("%d\n",max);

for(int ix=x;ix<=y;ix++)

printf("%c",buf[a[ix]]);

printf("\n");

return 0;

}

當字串的長度比較大的時候,上面程式非常慢。

如果列舉回文串中間的位置i,然後不斷向外擴充套件,直到字元不同~~這樣更快!

//最長回文子串 

#include #include#include#define maxn 5000+10

char buf[maxn],s[maxn];

int main()

}for(j=0;i-j>=0&&i+j+1max)

}}

printf("%d\n",max);

for(int ix=x;ix<=y;ix++)

printf("%c",buf[a[ix]]);

printf("\n");

return 0;

}

《演算法競賽入門經典》第三章習題3 4

題目名稱 計算器 題目描述 編寫程式,讀入一行恰好包含乙個加號 減號或乘號的表示式,輸出它的值。這個運算子保證是二元運算子,且兩個運算子均不超過100的非負整數。運算子和運算子可以緊挨著,也可以用乙個或多個空格 tab隔開。行首末尾均可以有空格。樣例輸入 1 1 樣例輸出 2 樣例輸入 2 5 樣例...

演算法競賽入門經典第三章 學習總結

1.scanf s a 不加 讀入乙個字串,不能讀入空格,tab,回車。gets s 可以識別空格,tab,回車。以上的函式均在末尾加 0 include include includeusing namespace std int main 2.char strchr const char s,c...

演算法入門經典第三章(上)

逆序輸出 讀入一些整數然後逆序輸出,將你所輸入的每個數字存入到陣列a maxn 中,然後利用for迴圈逆序輸出,輸入完了以後別忘了先按回車再按crtl z,強制輸出,要不然會無限輸入的2333.這段程式執行是這樣的 給你個例子 如果輸入12 33 55 89 則輸出 89 55 33 12.主要是a...