算法——字符串
杨小帆_
沉下心来做技术
展开
-
LeetCode 12. 整数转罗马数字
题目:12. 整数转罗马数字 类型:字符串 解题思路: 这题没啥太多说的,求就完事儿了。 代码: string intToRoman(int num) { int values[]={1000,900,500,400,100,90,50,40,10,9,5,4,1}; string reps[]={"M","CM","D","C...原创 2019-01-31 14:05:00 · 194 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第N个节点
题目:19. 删除链表的倒数第N个节点 类型:链表 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 解题思路...原创 2019-02-03 09:58:54 · 149 阅读 · 0 评论 -
LeetCode 20. 有效的括号
题目:20. 有效的括号 类型:字符串 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3:...原创 2019-02-06 18:08:19 · 147 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串
题目:3. 无重复字符的最长子串 类型:字符串 解题思路: 解题的思路时运用双指针和哈希表,即使用两个指针,一个指向开头位置,另一个指向结尾位置,且这两个指针之前元素是不重复的。具体实现是尾指针向后扫描字符串,每当遇到一个字符即检测它之前是否出现过,如果没有出现过,则将该字符这次出现的位置作为该字符最后出现的位置进行保存,如果出现过,判断出现过的位置,如果位于当前开头的后面则替换当前的首指针...原创 2019-01-30 16:11:00 · 154 阅读 · 0 评论 -
LeetCode 6. Z 字形变换
题目:6. Z 字形变换 类型:字符串 解题思路: 两种解题的思路,解法一是我自己的思路,即强行找规律,然后以每一列加两列之间的元素为一组作为内循环,外循环为对每一列的处理。 解法二是实例代码,无敌了,太强了,我感觉到我的智商收到了碾压,他的思路就是只是用一个数组来保存转换后每一行的字符,因为对于给定的字符串转化为 Z 型后的每一列是有规律的,举个例子,比如 ABCDEFG numRows...原创 2019-01-31 10:30:37 · 138 阅读 · 0 评论