【題目】
所謂回文,就是正序和倒序遍歷結果一樣的字串,比如'aba', 'abcdedcba'。實現乙個方法pal(),輸入乙個字串,列印出以這個字串為字首的乙個回文。比如輸入'abc',pal()方法列印出'abcdcba'或'abcba';輸入'abcb',可以輸出'abcbcba'或'abcba'。如果可能,輸出盡量短的結果。
【思路一】
以abcdc為例,以此為字首的回文有 'abcdccdcba', 'abcdcdcba','abcdcba',即在輸入的字串後面新增字元,使之成為回文字串
方法一、最先想到的辦法就是把輸入的字串倒序拼接在原字串後面,如原字串為'abcdc',倒序為'cdcba',拼接的結果為'abcdccdcba',然後不斷刪除倒序的字元,拼接上去,判斷是否是回文,是,則輸出,不是,則繼續刪除字元。比如:
1)'abcdcdcba'是回文
2)'abcdccba'不是回文
3)'abcdcba'是回文
最後乙個是回文的字串即未最短的回文字串。
這樣的話,每次可能都求出幾個沒用的回文串,例如上面的'abcdcdcba'是回文,題目要求是求最短的回文串,因此我們從最短可能的回文串開始。
先判斷字串本身是不是回文串,如果不是,一次新增字元,a,ba,cba,dcba,cdcba判斷。
#include //判斷是否是回文串
int ispalindrome(char* str)
} return 1;
} // 回文串修復
char* pal(char* s)
// 本身就是回文串
if(ispalindrome(s))
for( i = 0;i < len;i++)
str[index] = '\0';
if(ispalindrome(str))
} }
int main()
【思路二】
#include //判斷是否是回文串
int ispalindrome(char* str)
} return 1;
} // 回文串修復
char* pal(char* s)
// 本身就是回文串
for( i = 0;i < len;i++)
str[index] = '\0';
return str;
}}
}
int main()
盡量使用標準的異常
我們盡量去使用jdk的標準異常。為什麼?第一,使用標準異常和程式設計師原來已經熟悉的api是一致的。第二,可讀性好。不會出現程式設計師不熟悉的異常。第三,使用異常類越少,意味著記憶體占用就越小,並且裝載這些類的時間開銷也越小。最常用的異常是 illegalargumentexception,當呼叫者...
短學期的事情
短學期正式是從三號開始的,今天是7號,已經過去5天了.其實也很快的,18號左右大概就可以回家了。17號 應該完成所有的所謂的 各種各樣的 還真是很多,可能沒個4 5天還真搞不好,這樣專案其實在13號是 必須要做出來的。最終的異地除錯和修改該需要2天時間,本地修改需要一天。這樣來說程式設計階段必須在1...
python的短邏輯
python中的與 and 和或 or 都是短路的與或,短路指的是當通過第乙個值能判斷出結果時,就不再去檢視第二個值了。python支援布林型別的資料,布林型別只有true和false兩種值,但是布林型別有以下幾種運算 與 and 運算 對於與運算,由於要求兩個都為true結果才為true,所以如果...