/**
* 522. 最長特殊序列 II
* 給定字符串列表,你需要從它們中找出最長的特殊序列瓤漏。
* 最長特殊序列定義如下:該序列為某字符串獨有的最長子序列(即不能是其他字符串的子序列)宰衙。
* 子序列可以通過刪去字符串中的某些字符實現(xiàn)荠呐,但不能改變剩余字符的相對順序。
* 空序列為所有字符串的子序列匠楚,任何字符串為其自身的子序列良哲。
* 輸入將是一個字符串列表,輸出是最長特殊序列的長度系任。如果最長特殊序列不存在,返回 -1 虐块。
*
* 示例:
* 輸入: "aba", "cdc", "eae"
* 輸出: 3
*
* 提示:
* 1俩滥、所有給定的字符串長度不會超過 10 。
* 2贺奠、給定字符串列表的長度將在 [2, 50 ] 之間霜旧。
*
*/
/**
* 方法一:檢查每個字符串
* 如果存在這樣的特殊序列,那么它一定是某個給定的字符串儡率。
* 檢查每個字符串是否是其他字符串的子序列挂据。如果不是,則它是一個特殊序列儿普。最后返回長度最大的特殊序列崎逃。如果不存在特殊序列,返回 -1眉孩。
*/
public int findLUSlength(String[] strs) {
int res = -1;
for (int i = 0, j; i < strs.length; i++) {
for (j = 0; j < strs.length; j++) {
if (j == i)
continue;
if (isSubsequence(strs[i], strs[j]))
break;
}
if (j == strs.length)
res = Math.max(res, strs[i].length());
}
return res;
}
public boolean isSubsequence(String s, String t) {
int j = 0;
for (int i = 0; j < s.length() && i < t.length(); i++)
if (s.charAt(j) == t.charAt(i))
j++;
return j == s.length();
}
/**
* 復雜度分析
* 時間復雜度:O(x*n^2)其中 n是字符串的數(shù)量个绍,x是每個字符串的平均長度。
* 空間復雜度:O(1)勺像,恒定的額外空間障贸。
*/
/**
* 方法二:排序+檢查每個字符串
* 方法一中需要判斷每個字符串是否為特殊序列错森。如果最開始可以先將所有字符串排序吟宦,則可以節(jié)省一部分計算。
* 本方法中涩维,首先按照長度降序排序所有字符串殃姓。然后,依次使用序列中的每個字符串與其他字符串比較瓦阐,如果不存在字符串是當前字符串的子序列蜗侈,則返回當前字符串的長度。否則返回 -1睡蟋。
*/
public int findLUSlength2(String[] strs) {
Arrays.sort(strs, new Comparator< String >() {
public int compare(String s1, String s2) {
return s2.length() - s1.length();
}
});
for (int i = 0, j; i < strs.length; i++) {
boolean flag = true;
for (j = 0; j < strs.length; j++) {
if (i == j)
continue;
if (isSubsequence(strs[i], strs[j])) {
flag = false;
break;
}
}
if (flag)
return strs[i].length();
}
return -1;
}
/**
* 復雜度分析
* 時間復雜度:O(x*n^2)其中 n 是字符串的數(shù)量踏幻,x 是每個字符串的平均長度。
* 空間復雜度:O(1)戳杀,恒定的額外空間该面。
*/
LeetCode522. 最長特殊序列 II
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門淮悼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人揽思,你說我怎么就攤上這事敛惊。” “怎么了绰更?”我有些...
- 文/不壞的土叔 我叫張陵瞧挤,是天一觀的道長。 經(jīng)常有香客問我儡湾,道長特恬,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任徐钠,我火速辦了婚禮癌刽,結果婚禮上,老公的妹妹穿的比我還像新娘尝丐。我一直安慰自己显拜,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布爹袁。 她就那樣靜靜地躺著远荠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪失息。 梳的紋絲不亂的頭發(fā)上譬淳,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剂娄!你這毒婦竟也來了窘问?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布吏颖,位于F島的核電站,受9級特大地震影響恨樟,放射性物質發(fā)生泄漏半醉。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一劝术、第九天 我趴在偏房一處隱蔽的房頂上張望缩多。 院中可真熱鬧,春花似錦养晋、人聲如沸衬吆。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽逊抡。三九已至,卻和暖如春圈纺,著一層夾襖步出監(jiān)牢的瞬間秦忿,已是汗流浹背麦射。 一陣腳步聲響...