演算法競賽入門經典(第2版) 劉汝佳編著 回文詞

2021-10-01 04:20:36 字數 1167 閱讀 4554

輸入乙個字串,判斷它是否為回文串以及映象串。輸入字串保證不含數字0。所謂回文串,就是反轉以後和原串相同,如abba和madam。所有映象串,就是左右映象之後和原串相同,如2s和3aiae。注意,並不是每個字元在映象之後都能得到乙個合法字元。在本題中,每個字元的映象如圖所示(空白項表示該字元映象後不能得到乙個合法字元)。輸入的每行包含乙個字串(保證只有上述字元。不含空白字元),判斷它是否為回文串和映象串(共4種組合)。每組資料之後輸出乙個空行。

樣例輸入:

notapalindrome

isapalinilapasi

2a3meas

atoyota

樣例輸出:

notapalindrome – is not a palindrome.

isapalinilapasi – is a regular palindrome.

2a3meas – is a mirrored string.

atoyota – is a mirrored palindrome.

分析:題中說不包含空白字元,那麼就可以安全地使用scanf進行輸入。使用常量陣列解決本題會更加方便。

#include

#include

#include

const

char

* rev=

"a 3 hil jm o 2tuvwxy51se z 8 "

;const

char

* msg=

;charr(

char ch)

//返回值是ch的映象字元

intmain

(int argc,

char

*ar**)

printf

("%s -- is %s.\n\n"

,s,msg[m*

2+p]);

//msg陣列中前2個為回文的,所以當m=1時,m*2表示從映象開始

}return0;

}

執行結果:

演算法競賽入門經典(第2版) 劉汝佳編著 豎式問題

豎式問題 找出所有形如abc de 三位乘兩位數 的算式,使得在完整的豎式中,所有數字都屬於乙個特定的數字集合。輸入數字集合 相鄰數字之間沒有空格 輸出所有豎式。每個豎式前應有編號,之後應有乙個空行。最後輸出解的總數。具體格式見樣例輸出。為了便於觀察,豎式中的空格改用小數點顯示,但所寫程式中應該輸出...

劉汝佳《演算法競賽入門經典》索引筆記

2015年4月30日 acm學習技巧 14 浮點數陷阱 18 include 22 fopen input.txt r stdin 25 ifdef 26 lld 29 大陣列在main外面宣告 34 memset a,0,sizeof a 35 count 濫用 40 linux換行符問題 41 ...

演算法競賽入門經典 劉汝佳 第七章暴力

0 1 增量構造法 include include include include using namespace std int n,t 100 ans 100 void solve int cur,int tpre int main return 0 2 位向量法vis i 1表示選中t i 這...