輸入乙個字串,判斷它是否為回文串以及映象串。輸入字串保證不含數字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 這...