串聯字串的最大長度
阿新 • • 發佈:2021-06-19
題目連結:串聯字串的最大長度
題目描述:
題解:
class Solution { public: int maxLen = 0; void backTracking(vector<string>& arr, int index, vector<int>& letters) { int len = 0; //整個回溯過程中是否有重複字元 for (auto n : letters) { if (n >= 2) return; else if(n == 1) len++; } maxLen = max(len, maxLen); //遞迴出口 if(index == arr.size()) return; //本身存在重複字元 for (auto c : arr[index]) { if (letters[c - 'a'] > 1) return; } for(int i = index; i < arr.size(); ++i) { for(auto ch: arr[i]) letters[ch - 'a']++; backTracking(arr, i + 1, letters); for(auto ch: arr[i]) letters[ch - 'a']--; } } int maxLength(vector<string>& arr) { vector<int> letters(26, 0); backTracking(arr, 0, letters); return maxLen; } };