[Lc]166分数到小数

题目 题解 这道题其实就是模拟笔算除法的过程,挨个位产生商,主要判断是否除尽或者产生了循环。 class Solution { public: string fractionToDecimal(int numerator, int denominator) { string res; if(numerator==0) return "0"; //用异或判断是否为负

[Lc]93复原IP地址

题目 题解 这道题主要是递归然后剪枝,符合条件的放入结果,不符合就键值,主要是要确定几种不符合条件的情况 剩下的数字不够分的,比如还有2个数,但是

[Lc]91解码方法

题目 题解 这道题也是dp,但是不用数组保存过去的状态,经过分析讨论当前状态只与前两个状态有关,所以只用存前两个状态即可,共有四种情况,详解见I

[Lc]125验证回文串

题目 题解 双指针,挨个比较,注意的是跳过非数字字母,还有大写字母要转化成小写 时间复杂度$O(n)$ 空间复杂度$O(1)$ 七个重要的c++内置函

[Lc]87扰乱字符串

题目 题解 1. 递归法 就是通过递归左右子串,首先判断长度是否相等,不相等直接false;然后判断是否完全一样,一样直接true;然后判断排序后是否

[Lc]72编辑距离

题目 题解 时间复杂度$O(mn)$ 空间复杂度$O(mn)$,都是搞dp数组用的 class Solution { public: int minDistance(string word1, string word2) { int n=word1.size(), m=word2.size(); if(n*m==0) return n+m;//若一个为空,返回另一个

[Lc]68文本左右对齐

题目 题解 时间复杂度$O(N)$ 空间复杂度$O(maxWidth+N)$,用于暂存每行的结果和存结果 class Solution { public: vector<string> fullJustify(vector<string>& words, int maxWidth) { vector<string> res; if(words.empty()) return res; int left = 0;/