LeetCode刷题191126

博主渣渣一枚,刷刷leetcode给自己瞅瞅,大神们由更好方法还望不吝赐教。题目及解法来自于力扣(LeetCode),传送门

  今天状态不好,划水第二天。

算法:

题号:20

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true
示例 2:

输入: "()[]{}"
输出: true
示例 3:

输入: "(]"
输出: false
示例 4:

输入: "([)]"
输出: false
示例 5:

输入: "{[]}"
输出: true

public class Solution {
        public bool IsValid(string s)
        {
            Stack<char> stack = new Stack<char>();

            var test = s.ToCharArray();

            foreach (var item in test)
            {
                if ('}'.Equals(item) || ']'.Equals(item) || ')'.Equals(item))
                {
                    if (stack.Count() == 0)
                    {
                        return false;
                    }
                    else
                    {
                        var result = stack.Pop();

                        if (('}'.Equals(item) && !'{'.Equals(result))
                            || (']'.Equals(item) && !'['.Equals(result))
                            || (')'.Equals(item) && !'('.Equals(result)))
                        {
                            return false;
                        }
                    }
                }
                else
                {
                    stack.Push(item);
                }
            }

            if (stack.Count() > 0)
            {
                return false;
            }

            return true;
        }
}

  官方解法传送门。嗯,官方的第二种方法也用到了栈。不过好像思路不太一样。其实也可以用下评论里别人的思路,简化判断,如果栈的深度大于字符串长度的1/2,就返回false。

数据库:

题号:596

有一个courses 表 ,有: student (学生) 和 class (课程)。

请列出所有超过或等于5名学生的课。

例如,表:

+---------+------------+
| student | class |
+---------+------------+
| A | Math |
| B | English |
| C | Math |
| D | Biology |
| E | Math |
| F | Computer |
| G | Math |
| H | Math |
| I | Math |
+---------+------------+
应该输出:

+---------+
| class |
+---------+
| Math |
+---------+
Note:
学生在每个课中不应被重复计算。

SELECT
class
from courses
group by class
having count(distinct(student)) >= 5

  水一道,其实就是去重。

 

posted @ 2019-11-26 19:04  DogTwo  阅读(147)  评论(0编辑  收藏  举报