LeetCode
indomitable@I
踏着层层阶梯攀登
展开
-
leetcode---用栈实现队列、用队列实现栈(栈和队列的习题)
用队列实现栈使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空class MyStack {public: MyStack() {} void push(int x) //放入元素 { if (!q1.empty()) q1.push(x); else q2.pu...原创 2020-03-20 00:15:54 · 445 阅读 · 0 评论 -
leetcode----反转单链表(递归【重要】、循环)
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLstruct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };我直接可以想到...原创 2020-03-19 21:29:53 · 107 阅读 · 0 评论 -
leetcode---有效的括号(有关栈的练习题)
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。比如:输入 : "()"输出 : true 输入 : "(]" 输出 : false代码如下:class Solution {public: bool isValid(string s) { ...原创 2020-03-17 21:58:07 · 93 阅读 · 0 评论 -
最小栈
来源:力扣(LeetCode)设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) --将元素 x 推入栈中。pop() --删除栈顶的元素。top() --获取栈顶元素。getMin() --检索栈中的最小元素。示例 :MinStack minStack = new MinStack();minStack.push(-2);minSt...原创 2020-03-02 22:21:55 · 106 阅读 · 1 评论 -
验证回文串
题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入 : “A man, a plan, a canal: Panama”输出 : true示例 2 :输入 : “race a car”输出 : false思路:从两端向中间遍历,遇到其他除字母和数字字符以外的字符忽略掉,直接向后走...原创 2020-02-23 18:27:04 · 97 阅读 · 0 评论 -
字符串最后一个单词长度
题目描述计算字符串最后一个单词的长度,单词以空格隔开。输入描述 :一行字符串,非空,长度小于5000。输出描述 :整数N,最后一个单词的长度。示例1输入hello world输出5size_t rfind(char c, size_t pos = npos)从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置#include<iostream>#i...原创 2020-02-16 19:15:35 · 224 阅读 · 0 评论 -
344.反转字符串
题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”, “e”, “l”, “l”, “o”]输出:[“o”, “l”, “l”, “e”, “h”]示...原创 2020-02-16 15:48:19 · 65 阅读 · 0 评论 -
字符串中的第一个唯一字符
题目描述:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 - 1。案例 :s = “leetcode”返回 0s = “loveleetcode”,返回 2.思路:统计每个字符出现了多少次:字符作为计数数组的下标,遇到相同字符,加1,遍历每个字符,如果出现一次,则找到class Solution {public: int firstUniqCha...原创 2020-02-15 18:01:49 · 116 阅读 · 1 评论 -
LeetCode: 两数之和(C&C++)
题目的描述大概是这样:给一个整形的数组nums,和一个目标值target,要求在数组中找到两个数和,其结果为该目标值,并返回这两个数的下标。假设给nums=[2,5,7,11],target=9;所以,返回的结果为 [0,1]最直接的方法就是,对数组遍历,假设数组中的一个数i为定值,然后找和它匹配的数(target-i)C语言:...原创 2019-09-27 17:07:03 · 171 阅读 · 0 评论