1. 程式人生 > 其它 >單張圖片轉PDF(基於Go語言實現)

單張圖片轉PDF(基於Go語言實現)

✅做題思路or感想

這題的主題有兩個:分割字串檢查是否迴文

難點在於第一點,這裡用startIndex作為子串開始的地方,i作為子串結束的地方,用s.substr(startIndex, i - startIndex + 1)來分割出子串

遞迴單層邏輯就是判斷子串是否迴文,如果迴文,則加入vector<string>中,否則continue

class Solution {
public:
    vector<vector<string>>result;
    vector<string>vec;
    //用雙指標法來判斷是否迴文
    bool isGood(string s, int left, int right) {
        while (left <= right) {
            if (s[left] != s[right])return false;
            left++;
            right--;
        }
        return true;
    }
    void dfs (string s, int startIndex) {
        //當子串初始點大於主串末尾時,就結束遞迴
        if (startIndex >= s.size()) {
            result.push_back(vec);
            return;
        }
        for (int i = startIndex; i < s.size(); i++) {
            if (isGood(s, startIndex, i)) {
                string str = s.substr(startIndex, i - startIndex + 1);
                vec.push_back(str);
                dfs(s, i + 1);
                vec.pop_back();//回溯
            } else continue;
        }
    }
    vector<vector<string>> partition(string s) {
        dfs(s, 0);
        return result;
    }
};