leetcode解题记录(二)
生活随笔
收集整理的這篇文章主要介紹了
leetcode解题记录(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
leetcode14:最長公共前綴
問題描述:
編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串 “”。
示例1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z 。
思路: 首先找出數組中長度最短的字符串,該字符串一定包含或等于最長公共前綴。定義一個空字符串s,從第一個字符串開始與最短字符串比較,若對應字符相符,s加上該字符。否則直接返回s。代碼如下:
leetcode20:有效的括號
問題描述:
給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判斷字符串是否有效。
有效字符串需滿足:
左括號必須用相同類型的右括號閉合。
左括號必須以正確的順序閉合。
注意空字符串可被認為是有效字符串。
示例1:
輸入: "()[]{}"
輸出: true
示例2:
輸入: "([)]"
輸出: false
思路: 核心思想遍歷字符串,左括號入棧,遇到右括號,則看是否與棧頂元素括號匹配,如果不匹配,則輸出false
class Solution { public:bool isValid(string s) {//核心思想遍歷字符串,左括號入棧,遇到右括號,則看是否與棧頂元素括號匹配,如果不匹配,則輸出false 。遍歷完需要檢查棧是否為空if (s.empty())return true;stack<char> stack;for(int i=0;i<s.size();i++){if (s[i] == '(' || s[i] == '[' || s[i] == '{'){stack.push(s[i]);}else{if(stack.empty())return false;if ((s[i]==')' && '('!=stack.top()) || (s[i]==']' && '['!=stack.top()) || ((s[i]=='}' && '{'!=stack.top()))){return false;}stack.pop();}}if(stack.empty())return true;elsereturn false;} };總結
以上是生活随笔為你收集整理的leetcode解题记录(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python-朴素贝叶斯分类器
- 下一篇: hadoop伪分布式配置