題目:有一天jerry給tom出了一道題來考驗他。jerry給了tom乙個長度為2 * n的只包含小寫字母的字串,讓tom將這個字串任意挑選字元,將其分成兩個等長的字串a和b(對於乙個si不能同時被選到a和b中),然後a要和reverse(b)相同(a和反轉後的b相同),問這樣的方案數有多少?tom有些為難,所以請你來幫幫他吧。
輸入乙個正整數n,和乙個長度為2*n的字串
輸出方案數。
示例1輸入:
2「abba」
輸出:4
題意理解:
從右向左抽出n個字元作為a,剩下的字元作為b,a與b字串的順序相反。
思路:用深度優先演算法dfs將各種可能的字串窮舉出來,同時運用對稱性來減小時間複雜度。
例如「cabaacba」,如果『c』為a的第乙個字元,則b的最後乙個字元也是『c』,而第二個『c』後面的『ba』則一定是屬於a字串的,這樣就能大大減小時間複雜度。
在使用dfs演算法對字元進行篩選時要對已挑出的不同類的字元做不同的標記,以免發生混淆
阿里雲ECS訓練營 Day5
開啟鏈結,在頁面左側,單擊雲產品資源下拉列表,檢視本次實驗資源。單擊免費開通建立所需資源。說 明 color 說明 win r開啟系統自帶的終端工具。在終端中輸入連線命令ssh username ipaddress 將其中的 username 和 ipaddress 替換為雲產品資源提供的ecs伺服...
阿里雲ECS七天訓練營 搭建FTP
客戶端從乙個隨機的大於1024以上的埠n連線到伺服器的21埠,客戶端開始監聽埠n 1同時傳送命令 port n 1 告訴伺服器開放了n 1埠。伺服器使用20埠回連到客戶端指定的n 1埠開始傳輸資料 被動模式 客戶端從乙個隨機的大於1024以上的埠n連線到伺服器的21埠,開始監聽埠n 1,並且 同時傳...
阿里雲ECS七天高階訓練營 搭建docker環境篇
docker有兩個分支版本 docker ce 社群版 和docker ee 企業版 1.安裝docker的依賴庫 2.新增docker ce的軟體源資訊 yum config manager add repo3.安裝docker ce yum makecache fast yum y instal...