亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

LeetCode 131 Palindrome Partitioning

系統(tǒng) 2254 0

Given a string? s , partition? s ?such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of? s .

For example, given? s ?=? "aab" ,
Return

                  [
    ["aa","b"],
    ["a","a","b"]
  ]
              
思路:1.推斷字符串的字串S.subString(i,j) [i<=j]是否為為回文子串,用boolean型的二維數(shù)組 isPalindrome來(lái)存儲(chǔ)該結(jié)果 。在這個(gè)地方用了點(diǎn)小技巧,isPalindrome[i]j]會(huì)依賴(lài)于i sPalindrome[i+1]j-1] ?[i+2<=j].
? ? ? ? ? 2.如果在求String s的全部回文子串,我們已經(jīng)知道了s.substring(0,0),s .substring(0,1), s.substring(0,2),s .substring(0,3), ....,s .substring(0,s.length()-2)的全部回文字串,那我們僅僅須要遍歷 i sPalindrome[i]js.lenth()-1]是不是true{即從s.substring(i)是不是回文字符串}若為true,我們?nèi)〕? s.substring(i-1)的全部回文字串,并在每一種可能性末尾加入 s.substring(i)就可以,代碼例如以下
            public class Solution {

	public boolean[][] isPalindrome(String s) {
		boolean[][] isPalindrome = new boolean[s.length()][s.length()];
		for (int i = 0; i < s.length(); i++)
			isPalindrome[i][i] = true;

		for (int i = 0; i < s.length() - 1; i++)
			isPalindrome[i][i + 1] = (s.charAt(i) == s.charAt(i + 1));

		for (int length = 2; length < s.length(); length++) {
			for (int start = 0; start + length < s.length(); start++) {
				isPalindrome[start][start + length] = isPalindrome[start + 1][start
						+ length - 1]
						&& s.charAt(start) == s.charAt(start + length);
			}
		}
		return isPalindrome;
	}

	public List<List<String>> partition(String s) {
		boolean[][] isPalindrome= isPalindrome(s);
		HashMap<Integer,List<List<String>>> hm=new HashMap<Integer,List<List<String>>>();
		for(int i=0;i<s.length();i++){
			List<List<String>> ls=new ArrayList<List<String>>();
			if(isPalindrome[0][i]){
				ArrayList<String> temp=new ArrayList<String>();
				temp.add(s.substring(0, i+1));
				ls.add(temp);
			}
			
			for(int j=1;j<=i;j++){
				if(isPalindrome[j][i]){
					List<List<String>> l=hm.get(j-1);
					List<List<String>> al=new ArrayList<List<String>>();
					for(List<String> temp:l){
						ArrayList<String> clone=new ArrayList<String>(temp);
						clone.add(s.substring(j, i+1));
						al.add(clone);
					}
					ls.addAll(al);
				}	
			}
			hm.put(i,ls);
		}
		return hm.get(s.length()-1);
	}
}
          


LeetCode 131 Palindrome Partitioning


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 在线欧美69v免费观看视频 | 久久午夜神器 | 精品无人乱码区1区2区3区 | 亚洲国产一区二区三区在线观看 | 日韩欧美综合在线 | 欧美一级α片毛片免费观看 | 亚洲免费一区 | 99热这里只有精品在线播放 | 狠狠色噜噜狠狠狠狠97老肥女 | 久久99国产精品成人 | 中文字幕人成不卡一区 | 国产成人一区二区三区视频免费 | 一区二区在线免费观看 | 偷亚洲偷国产欧美高清 | 久操视频网站 | 色婷婷天天综合在线 | 九九视频在线 | 热玖玖 | 日本高清不卡网站免费 | 国产1区2区3区在线观看 | 久久九九 | 一级无毛片| 激情综合色综合久久综合 | 99久久久国产精品免费播放器 | 玖玖在线国产精品 | 国产在线视频一区 | 日本精品视频在线 | 成人免费高清 | 一级免费视频 | 99热久久这里只有精品6国产网 | 国产一级影视 | 国产精品成人久久久久久久 | 特黄未满14周岁毛片 | 免费观看黄色小视频 | 国产欧美综合一区二区 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aa在线看 | 美女又黄又免费视频 | 97精品视频共享总站 | 日本天天谢天天要天天爱 | 国产亚洲第一伦理第一区 | 伊人热久久 |