1. 程式人生 > 其它 >串聯字串的最大長度

串聯字串的最大長度

題目連結:串聯字串的最大長度
題目描述:

題解:


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;
    }
};