Repository navigation
Expand file tree
/
Copy pathleetcode-valid-parentheses.html
More file actions
179 lines (166 loc) · 27.1 KB
/
Copy pathleetcode-valid-parentheses.html
File metadata and controls
179 lines (166 loc) · 27.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>LeetCode第20题Valid Parentheses | WenQian Dong's Web</title><meta name="author" content="WenQian Dong"><meta name="copyright" content="WenQian Dong"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="Valid ParenthesesValid Parentheses的要求是匹配括号的合法性。 Example 1: Input: “()”Output: true Example 2: Input: “()[]{}”Output: true Example 3: Input: “(]”Output: false 解法明天再写,回去洗洗睡先。 方法是使用一个栈的数据结构来匹配括号,我们将每">
<meta property="og:type" content="article">
<meta property="og:title" content="LeetCode第20题Valid Parentheses">
<meta property="og:url" content="https://wqdchn.github.io/leetcode-valid-parentheses.html">
<meta property="og:site_name" content="WenQian Dong's Web">
<meta property="og:description" content="Valid ParenthesesValid Parentheses的要求是匹配括号的合法性。 Example 1: Input: “()”Output: true Example 2: Input: “()[]{}”Output: true Example 3: Input: “(]”Output: false 解法明天再写,回去洗洗睡先。 方法是使用一个栈的数据结构来匹配括号,我们将每">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://raw.githubusercontent.com/wqdchn/blog-image/master/avatar.jpg">
<meta property="article:published_time" content="2019-09-19T14:02:38.000Z">
<meta property="article:modified_time" content="2024-02-17T01:39:55.113Z">
<meta property="article:author" content="WenQian Dong">
<meta property="article:tag" content="LeetCode">
<meta property="article:tag" content="栈">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://raw.githubusercontent.com/wqdchn/blog-image/master/avatar.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://wqdchn.github.io/leetcode-valid-parentheses.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css?v=4.12.0"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.1/css/all.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0.32/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '天',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid@4.11.0/dist/infinitegrid.min.js',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'LeetCode第20题Valid Parentheses',
isPost: true,
isHome: false,
isHighlightShrink: false,
isToc: true,
postUpdate: '2024-02-17 09:39:55'
}</script><script>(win=>{
win.saveToLocal = {
set: (key, value, ttl) => {
if (ttl === 0) return
const now = Date.now()
const expiry = now + ttl * 86400000
const item = {
value,
expiry
}
localStorage.setItem(key, JSON.stringify(item))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = Date.now()
if (now > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
Object.keys(attr).forEach(key => {
script.setAttribute(key, attr[key])
})
document.head.appendChild(script)
})
win.getCSS = (url, id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 7.1.1"><link rel="alternate" href="/atom.xml" title="WenQian Dong's Web" type="application/atom+xml">
</head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://raw.githubusercontent.com/wqdchn/blog-image/master/avatar.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">45</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">44</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">4</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/links/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于我</span></a></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url('https://raw.githubusercontent.com/wqdchn/blog-image/master/daily_pic2.jpg')"><nav id="nav"><span id="blog-info"><a href="/" title="WenQian Dong's Web"><img class="site-icon" src="https://raw.githubusercontent.com/wqdchn/blog-image/master/avatar.jpg"/><span class="site-name">WenQian Dong's Web</span></a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/links/"><i class="fa-fw fas fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于我</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">LeetCode第20题Valid Parentheses</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2019-09-19T14:02:38.000Z" title="发表于 2019-09-19 22:02:38">2019-09-19</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-02-17T01:39:55.113Z" title="更新于 2024-02-17 09:39:55">2024-02-17</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/">数据结构与算法</a></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="LeetCode第20题Valid Parentheses"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><span id="more"></span>
<h4 id="Valid-Parentheses"><a href="#Valid-Parentheses" class="headerlink" title="Valid Parentheses"></a>Valid Parentheses</h4><p><a href="https://leetcode.com/problems/valid-parentheses/">Valid Parentheses</a>的要求是匹配括号的合法性。</p>
<h5 id="Example-1"><a href="#Example-1" class="headerlink" title="Example 1:"></a>Example 1:</h5><blockquote>
<p>Input: “()”<br>Output: true</p>
</blockquote>
<h5 id="Example-2"><a href="#Example-2" class="headerlink" title="Example 2:"></a>Example 2:</h5><blockquote>
<p>Input: “()[]{}”<br>Output: true</p>
</blockquote>
<h5 id="Example-3"><a href="#Example-3" class="headerlink" title="Example 3:"></a>Example 3:</h5><blockquote>
<p>Input: “(]”<br>Output: false</p>
</blockquote>
<p><del>解法明天再写,回去洗洗睡先。</del></p>
<p>方法是使用一个栈的数据结构来匹配括号,我们将每一个元素和三种括号分别进行匹配,如果是<code>“(”</code>那么就往栈里<code>push</code>进一个它的“解”也就是<code>“)”</code>,中括号和大括号也类似,也就是说我们匹配到一个左括号就往栈里<code>push</code>进一个“解”—右括号。</p>
<p>假设当前的括号序列是<code>“()[]{}”</code>,当匹配到第一个元素<code>“(”</code>的时候,栈里面就<code>push</code>进一个<code>“)”</code>,当匹配走到第二个元素<code>“)”</code>的时候,由于它不是待匹配的左括号,而是“解”,所以我们<code>pop</code>栈中的内容,刚好发现栈里面有一个<code>“)”</code>,于是将它<code>pop</code>出去,同理解决余下的元素,最后发现,栈是空的,且所有元素都匹配完了,说明没有非法的括号。如果中途栈就空了,而当前待匹配的不是左括号而是“解”—右括号,则说明已经无解了。</p>
<h4 id="Solution"><a href="#Solution" class="headerlink" title="Solution"></a>Solution</h4><p>下面是<code>Java</code>的代码:</p>
<figure class="highlight java"><table><tr><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span> {</span><br><span class="line"> <span class="keyword">public</span> <span class="type">boolean</span> <span class="title function_">isValid</span><span class="params">(String s)</span> {</span><br><span class="line"> <span class="keyword">if</span> (s == <span class="literal">null</span> || s.length() == <span class="number">0</span>) <span class="keyword">return</span> <span class="literal">true</span>;</span><br><span class="line"> Stack<Character> stack = <span class="keyword">new</span> <span class="title class_">Stack</span><>();</span><br><span class="line"> <span class="keyword">for</span> (Character ch : s.toCharArray()) {</span><br><span class="line"> <span class="keyword">if</span> (ch == <span class="string">'('</span>){</span><br><span class="line"> stack.push(<span class="string">')'</span>);</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (ch == <span class="string">'['</span>){</span><br><span class="line"> stack.push(<span class="string">']'</span>);</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (ch == <span class="string">'{'</span>){</span><br><span class="line"> stack.push(<span class="string">'}'</span>);</span><br><span class="line"> } <span class="keyword">else</span> {</span><br><span class="line"> <span class="keyword">if</span> (stack.isEmpty() || stack.pop() != ch){</span><br><span class="line"> <span class="keyword">return</span> <span class="literal">false</span>;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> stack.isEmpty();</span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<p>下面是<code>Python</code>的代码:</p>
<figure class="highlight python"><table><tr><td class="code"><pre><span class="line"><span class="keyword">class</span> <span class="title class_">Solution</span>:</span><br><span class="line"> <span class="keyword">def</span> <span class="title function_">isValid</span>(<span class="params">self, s: <span class="built_in">str</span></span>) -> <span class="built_in">bool</span>:</span><br><span class="line"> stack = []</span><br><span class="line"> paren_map = {<span class="string">')'</span>:<span class="string">'('</span>, <span class="string">']'</span>:<span class="string">'['</span>, <span class="string">'}'</span>:<span class="string">'{'</span>}</span><br><span class="line"> <span class="keyword">for</span> c <span class="keyword">in</span> s:</span><br><span class="line"> <span class="keyword">if</span> c <span class="keyword">not</span> <span class="keyword">in</span> paren_map:</span><br><span class="line"> stack.append(c)</span><br><span class="line"> <span class="keyword">elif</span> <span class="keyword">not</span> stack <span class="keyword">or</span> paren_map[c] != stack.pop():</span><br><span class="line"> <span class="keyword">return</span> <span class="literal">False</span></span><br><span class="line"> <span class="keyword">return</span> <span class="keyword">not</span> stack</span><br></pre></td></tr></table></figure>
<h4 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h4><p>第20题是简单题,只要对栈这种数据结构稍微熟悉就能知道该怎么办,数据结构与算法的课程讲到栈这一节的时候也提到过括号匹配的问题<del>我猜大部分同学用的是严蔚民老师的那本经典教材</del>。</p>
</article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta"><i class="fas fa-circle-user fa-fw"></i>文章作者: </span><span class="post-copyright-info"><a href="https://wqdchn.github.io">WenQian Dong</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta"><i class="fas fa-square-arrow-up-right fa-fw"></i>文章链接: </span><span class="post-copyright-info"><a href="https://wqdchn.github.io/leetcode-valid-parentheses.html">https://wqdchn.github.io/leetcode-valid-parentheses.html</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta"><i class="fas fa-circle-exclamation fa-fw"></i>版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://wqdchn.github.io" target="_blank">WenQian Dong's Web</a>!</span></div></div><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/LeetCode/">LeetCode</a><a class="post-meta__tags" href="/tags/%E6%A0%88/">栈</a></div><div class="post_share"><div class="social-share" data-image="https://raw.githubusercontent.com/wqdchn/blog-image/master/avatar.jpg" data-sites="facebook,twitter,wechat,weibo,qq"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1.1.3/sharejs/dist/css/share.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1.1.3/sharejs/dist/js/social-share.min.js" defer></script></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/leetcode-generate-parentheses.html" title="LeetCode第22题Generate Parentheses"><div class="cover" style="background: var(--default-bg-color)"></div><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">LeetCode第22题Generate Parentheses</div></div></a></div><div class="next-post pull-right"><a href="/leetcode-three-sum.html" title="LeetCode第15题Three Sum"><div class="cover" style="background: var(--default-bg-color)"></div><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">LeetCode第15题Three Sum</div></div></a></div></nav><div class="relatedPosts"><div class="headline"><i class="fas fa-thumbs-up fa-fw"></i><span>相关推荐</span></div><div class="relatedPosts-list"><div><a href="/leetcode-implement-queen-using-stacks.html" title="LeetCode第232题Implement Queen using Stacks"><div class="cover" style="background: var(--default-bg-color)"></div><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2019-09-25</div><div class="title">LeetCode第232题Implement Queen using Stacks</div></div></a></div><div><a href="/leetcode-implement-stack-using-queues.html" title="LeetCode第225题Implement Stack using Queues"><div class="cover" style="background: var(--default-bg-color)"></div><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2019-09-26</div><div class="title">LeetCode第225题Implement Stack using Queues</div></div></a></div><div><a href="/leetcode-best-time-to-by-and-sell-stock.html" title="LeetCode股票买卖系列"><div class="cover" style="background: var(--default-bg-color)"></div><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2020-03-06</div><div class="title">LeetCode股票买卖系列</div></div></a></div><div><a href="/leetcode-coin-change.html" title="LeetCode第322题Coin Change"><div class="cover" style="background: var(--default-bg-color)"></div><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2019-11-29</div><div class="title">LeetCode第322题Coin Change</div></div></a></div><div><a href="/leetcode-generate-parentheses.html" title="LeetCode第22题Generate Parentheses"><div class="cover" style="background: var(--default-bg-color)"></div><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2019-09-21</div><div class="title">LeetCode第22题Generate Parentheses</div></div></a></div><div><a href="/leetcode-count-primes.html" title="LeetCode第204题Count Primes"><div class="cover" style="background: var(--default-bg-color)"></div><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2020-02-08</div><div class="title">LeetCode第204题Count Primes</div></div></a></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://raw.githubusercontent.com/wqdchn/blog-image/master/avatar.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">WenQian Dong</div><div class="author-info__description">技术,杂谈,三国厨,历史向,Google粉</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">45</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">44</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">4</div></a></div><a id="card-info-btn" href="https://github.com/wqdchn"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/wqdchn" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content"><ol class="toc"><li class="toc-item toc-level-4"><a class="toc-link" href="#Valid-Parentheses"><span class="toc-number">1.</span> <span class="toc-text">Valid Parentheses</span></a><ol class="toc-child"><li class="toc-item toc-level-5"><a class="toc-link" href="#Example-1"><span class="toc-number">1.1.</span> <span class="toc-text">Example 1:</span></a></li><li class="toc-item toc-level-5"><a class="toc-link" href="#Example-2"><span class="toc-number">1.2.</span> <span class="toc-text">Example 2:</span></a></li><li class="toc-item toc-level-5"><a class="toc-link" href="#Example-3"><span class="toc-number">1.3.</span> <span class="toc-text">Example 3:</span></a></li></ol></li><li class="toc-item toc-level-4"><a class="toc-link" href="#Solution"><span class="toc-number">2.</span> <span class="toc-text">Solution</span></a></li><li class="toc-item toc-level-4"><a class="toc-link" href="#%E6%80%BB%E7%BB%93"><span class="toc-number">3.</span> <span class="toc-text">总结</span></a></li></ol></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/reply-2021.html" title="请回答 2021">请回答 2021</a><time datetime="2022-01-03T04:46:59.000Z" title="发表于 2022-01-03 12:46:59">2022-01-03</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/aloha-heja-he.html" title="Aloha Heja He">Aloha Heja He</a><time datetime="2020-08-09T13:18:30.000Z" title="发表于 2020-08-09 21:18:30">2020-08-09</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/how-is-going-2020-08-01.html" title="庚子年·仲夏记事">庚子年·仲夏记事</a><time datetime="2020-08-01T15:01:57.000Z" title="发表于 2020-08-01 23:01:57">2020-08-01</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/how-is-going-2020-06-30.html" title="庚子年·夏至记事">庚子年·夏至记事</a><time datetime="2020-06-30T11:26:57.000Z" title="发表于 2020-06-30 19:26:57">2020-06-30</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/how-is-going-2020-05-31.html" title="庚子年·初夏记事">庚子年·初夏记事</a><time datetime="2020-05-31T01:45:44.000Z" title="发表于 2020-05-31 09:45:44">2020-05-31</time></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2017 - 2024 By WenQian Dong</div><div class="framework-info"><span>框架 </span><a href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js?v=4.12.0"></script><script src="/js/main.js?v=4.12.0"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@5.0.32/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>