Ching 9690121403 feat(init project): add all existing files
add all existing files

Signed-off-by: Ching <loooching@gmail.com>
2022-02-02 19:04:18 +08:00

123 lines
8.5 KiB
HTML

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title> leetcode-1071 · MarkDown</title><meta name="description" content="leetcode-1071 - Ching"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="short icon" href="/favicon.png"><link rel="stylesheet" href="/css/apollo.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600" type="text/css"><style><!-- hexo-inject:begin --><!-- hexo-inject:end -->mjx-container[jax="SVG"] {
direction: ltr;
}
mjx-container[jax="SVG"] > svg {
overflow: visible;
}
mjx-container[jax="SVG"] > svg a {
fill: blue;
stroke: blue;
}
mjx-container[jax="SVG"][display="true"] {
display: block;
text-align: center;
margin: 1em 0;
}
mjx-container[jax="SVG"][justify="left"] {
text-align: left;
}
mjx-container[jax="SVG"][justify="right"] {
text-align: right;
}
g[data-mml-node="merror"] > g {
fill: red;
stroke: red;
}
g[data-mml-node="merror"] > rect[data-background] {
fill: yellow;
stroke: none;
}
g[data-mml-node="mtable"] > line[data-line] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > rect[data-frame] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > .mjx-dashed {
stroke-dasharray: 140;
}
g[data-mml-node="mtable"] > .mjx-dotted {
stroke-linecap: round;
stroke-dasharray: 0,140;
}
g[data-mml-node="mtable"] > svg {
overflow: visible;
}
[jax="SVG"] mjx-tool {
display: inline-block;
position: relative;
width: 0;
height: 0;
}
[jax="SVG"] mjx-tool > mjx-tip {
position: absolute;
top: 0;
left: 0;
}
mjx-tool > mjx-tip {
display: inline-block;
padding: .2em;
border: 1px solid #888;
font-size: 70%;
background-color: #F8F8F8;
color: black;
box-shadow: 2px 2px 5px #AAAAAA;
}
g[data-mml-node="maction"][data-toggle] {
cursor: pointer;
}
mjx-status {
display: block;
position: fixed;
left: 1em;
bottom: 1em;
min-width: 25%;
padding: .2em .4em;
border: 1px solid #888;
font-size: 90%;
background-color: #F8F8F8;
color: black;
}
foreignObject[data-mjx-xml] {
font-family: initial;
line-height: normal;
overflow: visible;
}
.MathJax path {
stroke-width: 3;
}
mjx-container {
overflow: auto hidden;
}
mjx-container + br {
display: none;
}
</style><!-- hexo-inject:begin --><!-- hexo-inject:end --></head><body><header><a href="/" class="logo-link"><img src="/logo.png"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link">ALL</a></li><li class="nav-list-item"><a href="/categories/leetcode/" target="_self" class="nav-list-link">LEETCODE</a></li><li class="nav-list-item"><a href="https://bearmiebear.blogspot.com" target="_blank" class="nav-list-link">BEAR</a></li><li class="nav-list-item"><a href="/atom.xml" target="_self" class="nav-list-link">RSS</a></li></ul></header><section class="container"><div class="post"><article class="post-block"><h1 class="post-title">leetcode-1071</h1><div class="post-meta"><div class="post-time">2020年3月30日</div></div><div class="post-content"><h3 id="1071-__u5B57_u7B26_u4E32_u7684_u6700_u5927_u516C_u56E0_u5B50"><a href="#1071-__u5B57_u7B26_u4E32_u7684_u6700_u5927_u516C_u56E0_u5B50" class="headerlink" title="1071. 字符串的最大公因子"></a>1071. 字符串的最大公因子</h3><p><a href="https://leetcode-cn.com/problems/greatest-common-divisor-of-strings/" target="_blank" rel="noopener">题目</a></p>
<!-- hexo-inject:begin --><!-- hexo-inject:end --><a id="more"></a>
<p>如果存在这样字符串,那它最大的长度就是这两个字符串长度的最大公约数。</p>
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Solution</span>:</span></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">gcdOfStrings</span><span class="params">(self, str1: str, str2: str)</span> -&gt; str:</span></span><br><span class="line"> <span class="keyword">if</span> str1[<span class="number">0</span>] != str2[<span class="number">0</span>]:</span><br><span class="line"> <span class="keyword">return</span> <span class="string">''</span></span><br><span class="line"></span><br><span class="line"> a = len(str1)</span><br><span class="line"> b = len(str2)</span><br><span class="line"> print(a, b)</span><br><span class="line"> <span class="keyword">if</span> a &lt; b:</span><br><span class="line"> str1, str2 = str2, str1</span><br><span class="line"> a = len(str1)</span><br><span class="line"> b = len(str2)</span><br><span class="line"></span><br><span class="line"> <span class="keyword">if</span> <span class="keyword">not</span> a%b:</span><br><span class="line"> <span class="keyword">for</span> x <span class="keyword">in</span> range(<span class="number">0</span>, a//b):</span><br><span class="line"> <span class="keyword">if</span> str1[x*b:(x+<span class="number">1</span>)*b] != str2:</span><br><span class="line"> <span class="keyword">return</span> <span class="string">''</span></span><br><span class="line"> <span class="keyword">return</span> str2</span><br><span class="line"> <span class="keyword">else</span>:</span><br><span class="line"> <span class="keyword">for</span> x <span class="keyword">in</span> range(b, <span class="number">0</span>, <span class="number">-1</span>):</span><br><span class="line"> print(x)</span><br><span class="line"> <span class="keyword">if</span> x==b <span class="keyword">or</span> b%x <span class="keyword">or</span> a%x:</span><br><span class="line"> <span class="keyword">continue</span></span><br><span class="line"> <span class="keyword">for</span> y <span class="keyword">in</span> range(<span class="number">0</span>, b//x):</span><br><span class="line"> <span class="keyword">if</span> str2[y*x:(y+<span class="number">1</span>)*x] != str2[b-x:b]:</span><br><span class="line"> <span class="keyword">return</span> <span class="string">''</span></span><br><span class="line"> <span class="keyword">for</span> y <span class="keyword">in</span> range(<span class="number">0</span>, a//x):</span><br><span class="line"> <span class="keyword">if</span> str1[y*x:(y+<span class="number">1</span>)*x] != str2[<span class="number">0</span>:x]:</span><br><span class="line"> <span class="keyword">return</span> <span class="string">''</span></span><br><span class="line"> <span class="keyword">return</span> str2[<span class="number">0</span>:x]</span><br><span class="line"><span class="comment"># 44 ms 13.9 MB</span></span><br></pre></td></tr></table></figure>
<p>官方解答中还给了一种巧妙的解法,如果 str1 + str2 == str2 + str1 的话,<a href="https://leetcode-cn.com/problems/greatest-common-divisor-of-strings/solution/zi-fu-chuan-de-zui-da-gong-yin-zi-by-leetcode-solu/" target="_blank" rel="noopener">可以证明</a>必定存在这样一个字符串,其长度为两个字符串长度的最大公约数。</p>
</div></article></div></section><footer><div class="paginator"><a href="/2020/04/01/leetcode-1160/" class="prev">PRVE</a><a href="/2020/03/30/leetcode-999/" class="next">NEXT</a></div><div class="copyright"><p>© 2016 - 2020 <a href="http://blog.tunpok.com">Ching</a>, unless otherwise noted.</p></div></footer><script src="https://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><!-- hexo-inject:begin --><!-- hexo-inject:end --></body></html>