摘要: 我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组 widths ,这个数组 widths[0] 代表 'a' 需要的单位, widths[1] 代表 'b' 需要的单位,..., widths[25] 代表 'z' 需要的单位。 现在回答两个问题:至少多少行... 阅读全文
posted @ 2019-04-17 11:12 围城DDD 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。 示例: 输入: s = "abcdefg", k = 2 输出: "bacdfeg" 要求: 该字符串只包含小写的英文字母。 给定字符串的长度和 k 在... 阅读全文
posted @ 2019-04-17 11:02 围城DDD 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 输入: "aba" 输出: True 示例 2: 输入: "abca" 输出: True 解释: 你可以删除c字符。 注意: 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。 class Solution { public boolean validPalindrome(S... 阅读全文
posted @ 2019-04-17 09:43 围城DDD 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。 举个例子,A = "abcd",B = "cdabcdab"。 答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。 注意: A 与 B 字符串的长度在1和1000... 阅读全文
posted @ 2019-04-16 11:07 围城DDD 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = "egg", t = "add" 输出: true 示例 2: 输入: s = "foo", t = "bar" 输出: f... 阅读全文
posted @ 2019-04-16 09:27 围城DDD 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1: 输入: A = "ab", B = "ba" 输出: true 示例 2: 输入: A = "ab", B = "ab" 输出: false 示例 3: 输入: A = "aa", B = "aa" 输出: true 示... 阅读全文
posted @ 2019-04-15 17:26 围城DDD 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。 在完成原地修改输入数组后,返回数组的新长度。 进阶: 你能否仅使用O(1) 空间解决问题? 示例 1: 输入: ["a","a","b","b","c" 阅读全文
posted @ 2019-04-15 17:03 围城DDD 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 给定只含 "I"(增大)或 "D"(减小)的字符串 S ,令 N = S.length。 返回 [0, 1, ..., N] 的任意排列 A 使得对于所有 i = 0, ..., N-1,都有: 如果 S[i] == "I",那么 A[i] < A[i+1] 如果 S[i] == "D",那么 A[ 阅读全文
posted @ 2019-04-15 16:55 围城DDD 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 内存模型程序计数器java虚拟机栈本地方法栈java堆方法区对象创建内存分配垃圾收集机制概念确定回收对象引用的概念两次标记过程垃圾回收算法垃圾收集器 内存模型 程序计数器 当前线程所执行的字节码的行号指示器,线程私有。字节码解析器的工作是通过改变这个计数器的值,来选取下一条需要执行的字节码指令。 java虚拟机栈 线程私有,生命周期与线程相同。 Java方法执行的内存模型。每个方法... 阅读全文
posted @ 2019-03-05 22:03 围城DDD 阅读(153) 评论(0) 推荐(0) 编辑