日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode解题记录(二)

發布時間:2024/7/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode解题记录(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

leetcode14:最長公共前綴

問題描述:
編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串 “”。
示例1:
輸入: ["flower","flow","flight"]
輸出: "fl"

示例2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共前綴。

說明:
所有輸入只包含小寫字母 a-z 。
思路: 首先找出數組中長度最短的字符串,該字符串一定包含或等于最長公共前綴。定義一個空字符串s,從第一個字符串開始與最短字符串比較,若對應字符相符,s加上該字符。否則直接返回s。代碼如下:

class Solution { public:string longestCommonPrefix(vector<string>& strs) {string s = "";if(strs.empty()) return "; //輸入為空,輸出空字符串string min = strs[0];for(int i = 1; i < strs.size(); i++) //找到最短字符串{if(strs[i].size() < min.size())min = strs[i];}for(int j = 0; j < min.size(); j++) //從第一個字符開始對比,若都一樣,s加上該字符{for(int m = 0; m < strs.size(); m++){if(min[j] != strs[m][j])return s;}s = s + min[j];}return 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解题记录(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。