# [471. 编码最短长度的字符串](https://leetcode-cn.com/problems/encode-string-with-shortest-length) [English Version](/solution/0400-0499/0471.Encode%20String%20with%20Shortest%20Length/README_EN.md) ## 题目描述 <!-- 这里写题目描述 --> <p>给定一个 <strong>非空</strong> 字符串,将其编码为具有最短长度的字符串。</p> <p>编码规则是:<code>k[encoded_string]</code>,其中在方括号 <code>encoded_string</code><em> </em>中的内容重复 <code>k</code> 次。</p> <p><strong>注:</strong></p> <ul> <li><em>k</em> 为正整数</li> <li>如果编码的过程不能使字符串缩短,则不要对其进行编码。如果有多种编码方式,返回 <strong>任意一种</strong> 即可</li> </ul> <p> </p> <p><strong>示例 1:</strong></p> <pre> <strong>输入:</strong>s = "aaa" <strong>输出:</strong>"aaa" <strong>解释:</strong>无法将其编码为更短的字符串,因此不进行编码。 </pre> <p><strong>示例 2:</strong></p> <pre> <strong>输入:</strong>s = "aaaaa" <strong>输出:</strong>"5[a]" <strong>解释:</strong>"5[a]" 比 "aaaaa" 短 1 个字符。 </pre> <p><strong>示例 3:</strong></p> <pre> <strong>输入:</strong>s = "aaaaaaaaaa" <strong>输出:</strong>"10[a]" <strong>解释:</strong>"a9[a]" 或 "9[a]a" 都是合法的编码,和 "10[a]" 一样长度都为 5。 </pre> <p><strong>示例 4:</strong></p> <pre> <strong>输入:</strong>s = "aabcaabcd" <strong>输出:</strong>"2[aabc]d" <strong>解释:</strong>"aabc" 出现两次,因此一种答案可以是 "2[aabc]d"。 </pre> <p><strong>示例 5:</strong></p> <pre> <strong>输入:</strong>s = "abbbabbbcabbbabbbc" <strong>输出:</strong>"2[2[abbb]c]" <strong>解释:</strong>"abbbabbbc" 出现两次,但是 "abbbabbbc" 可以编码为 "2[abbb]c",因此一种答案可以是 "2[2[abbb]c]"。 </pre> <p> </p> <p><strong>提示:</strong></p> <ul> <li><code>1 <= s.length <= 150</code></li> <li><code>s</code> 由小写英文字母组成</li> </ul> ## 解法 <!-- 这里可写通用的实现逻辑 --> <!-- tabs:start --> ### **Python3** <!-- 这里可写当前语言的特殊实现逻辑 --> ```python ``` ### **Java** <!-- 这里可写当前语言的特殊实现逻辑 --> ```java ``` ### **...** ``` ``` <!-- tabs:end -->