新农上路
- 积分
- 89
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2017-10-6
- 最后登录
- 1970-1-1
|
2018(1-3月) 码农类General 本科 全职@meta - 网上海投 - 技术电面 | | Other | 在职跳槽
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
给你一个array of strings,要求按顺序在thon3磕磕碰碰写下来的code,发现好多edge case要处理。。有没有大神会更好的写法?- <div style="color: rgb(248, 248, 242); background-color: rgb(39, 40, 34); font-family: Monaco; font-size: 13px; line-height: 20px; white-space: pre;"><div><span style="color: #66d9ef;font-style: italic;">def</span> <span style="color: #a6e22e;">assign_words</span>(<span style="color: #fd971f;font-style: italic;">grid</span>, <span style="color: #fd971f;font-style: italic;">words</span>):</div><div> i <span style="color: #f92672;">=</span> <span style="color: #ae81ff;">0</span></div><div> <span style="color: #f92672;">for</span> row <span style="color: #f92672;">in</span> <span style="color: #66d9ef;">range</span>(<span style="color: #66d9ef;">len</span>(grid)):</div><div> <span style="color: #f92672;">for</span> col <span style="color: #f92672;">in</span> <span style="color: #66d9ef;">range</span>(<span style="color: #66d9ef;">len</span>(grid[row])):</div><div> grid[row][col] <span style="color: #f92672;">=</span> words[i]</div><div> i <span style="color: #f92672;">+=</span> <span style="color: #ae81ff;">1</span></div><div> <span style="color: #f92672;">if</span> i <span style="color: #f92672;">==</span> <span style="color: #66d9ef;">len</span>(words):</div><div> <span style="color: #f92672;">return</span></div>
- <div><span style="color: #66d9ef;font-style: italic;">def</span> <span style="color: #a6e22e;">print_words</span>(<span style="color: #fd971f;font-style: italic;">words</span>):</div><div> word_count <span style="color: rgb(249, 38, 114);">=</span> <span style="color: rgb(102, 217, 239);">len</span>(words)</div><div> rows <span style="color: #f92672;">=</span> word_count <span style="color: #f92672;">//</span> <span style="color: #ae81ff;">3</span></div><div> extra_columns <span style="color: #f92672;">=</span> word_count <span style="color: #f92672;">%</span> <span style="color: #ae81ff;">3</span></div>
- <div> grid <span style="color: #f92672;">=</span> [[<span style="color: #e6db74;">''</span>] <span style="color: #f92672;">*</span> <span style="color: #ae81ff;">3</span> <span style="color: #f92672;">for</span> _ <span style="color: #f92672;">in</span> <span style="color: #66d9ef;">range</span>(rows)]</div>
- <div> <span style="color: #75715e;"># special case</span></div><div> <span style="color: #f92672;">if</span> word_count <span style="color: #f92672;"><=</span> <span style="color: #ae81ff;">3</span>:</div><div> grid.append([<span style="color: #e6db74;">''</span>]<span style="color: #f92672;">*</span><span style="color: #ae81ff;">3</span>)</div><div> assign_words(grid, words)</div><div> <span style="color: #f92672;">for</span> row <span style="color: #f92672;">in</span> grid:</div><div> <span style="color: #66d9ef;">print</span> (<span style="color: #e6db74;">' '</span>.join(row))</div><div> <span style="color: #f92672;">return</span></div><div> </div><div> <span style="color: #f92672;">if</span> extra_columns <span style="color: #f92672;">==</span> <span style="color: #ae81ff;">1</span>:</div><div> <span style="color: #f92672;">if</span> rows <span style="color: #f92672;">></span> <span style="color: #ae81ff;">2</span>:</div><div> grid[<span style="color: #ae81ff;">0</span>].append(<span style="color: #e6db74;">''</span>)</div><div> <span style="color: #f92672;">elif</span> rows <span style="color: #f92672;">==</span> <span style="color: #ae81ff;">2</span>:</div><div> grid[<span style="color: #ae81ff;">1</span>].pop()</div><div> grid.append([<span style="color: #e6db74;">''</span>]<span style="color: #f92672;">*</span><span style="color: #ae81ff;">3</span>)</div><div> <span style="color: #f92672;">elif</span> extra_columns <span style="color: #f92672;">==</span> <span style="color: #ae81ff;">2</span>:</div><div> <span style="color: #f92672;">if</span> rows <span style="color: #f92672;">></span> <span style="color: #ae81ff;">2</span>:</div><div> grid[<span style="color: #ae81ff;">0</span>].append(<span style="color: #e6db74;">''</span>)</div><div> grid[<span style="color: #ae81ff;">1</span>].append(<span style="color: #e6db74;">''</span>)</div><div> <span style="color: #f92672;">else</span>:</div><div> grid.append([<span style="color: #e6db74;">''</span>]<span style="color: #f92672;">*</span><span style="color: #ae81ff;">3</span>)</div><div> </div><div> assign_words(grid, words)</div>
- <div> <span style="color: #75715e;"># special case</span></div><div> <span style="color: #f92672;">if</span> <span style="color: #ae81ff;">3</span> <span style="color: #f92672;"><</span> word_count <span style="color: #f92672;"><</span> <span style="color: #ae81ff;">6</span>:</div><div> <span style="color: #66d9ef;">print</span> (grid[<span style="color: #ae81ff;">0</span>][<span style="color: #ae81ff;">0</span>]<span style="color: #f92672;">+</span> <span style="color: #e6db74;">' '</span><span style="color: #f92672;">+</span>grid[<span style="color: #ae81ff;">0</span>][<span style="color: #ae81ff;">2</span>]<span style="color: #f92672;">+</span><span style="color: #e6db74;">' '</span><span style="color: #f92672;">+</span>grid[<span style="color: #ae81ff;">1</span>][<span style="color: #ae81ff;">1</span>])</div><div> <span style="color: #66d9ef;">print</span> (grid[<span style="color: #ae81ff;">0</span>][<span style="color: #ae81ff;">1</span>]<span style="color: #f92672;">+</span> <span style="color: #e6db74;">' '</span><span style="color: #f92672;">+</span>grid[<span style="color: #ae81ff;">1</span>][<span style="color: #ae81ff;">0</span>]<span style="color: #f92672;">+</span><span style="color: #e6db74;">' '</span><span style="color: #f92672;">+</span>grid[<span style="color: #ae81ff;">1</span>][<span style="color: #ae81ff;">2</span>])</div><div> <span style="color: #f92672;">return</span></div>
- <div> <span style="color: #75715e;"># print grid</span></div><div> <span style="color: #f92672;">for</span> col <span style="color: #f92672;">in</span> <span style="color: #66d9ef;">range</span>(<span style="color: #66d9ef;">len</span>(grid[<span style="color: #ae81ff;">0</span>])):</div><div> <span style="color: #f92672;">for</span> row <span style="color: #f92672;">in</span> <span style="color: #66d9ef;">range</span>(<span style="color: #66d9ef;">len</span>(grid)):</div><div> <span style="color: #f92672;">if</span> col <span style="color: #f92672;">==</span> <span style="color: #66d9ef;">len</span>(grid[row]):</div><div> <span style="color: #f92672;">break</span></div><div> <span style="color: #66d9ef;">print</span> (grid[row][col], <span style="color: #fd971f;font-style: italic;">end</span><span style="color: #f92672;">=</span><span style="color: #e6db74;">' '</span>)</div><div> <span style="color: #66d9ef;">print</span> ()</div></div>
复制代码 |
上一篇: [面试经验] Uber 技术电面下一篇: Google OA 第2题 找blossom group latest day
|