擅长:python、mysql、java
<p>信不信由你,这个问题可以在O(1)时间内解决,因为每个足够大的字符串至少包含一个重复字符。毕竟,不同的Unicode字符的数量有限,因此一个字符串不能任意长,同时最多使用一次每个Unicode字符</p>
<p>例如,如果您碰巧知道字符串仅由小写字母组成,则可以执行以下操作:</p>
<pre class="lang-py prettyprint-override"><code>def has_repeated_char(s):
return len(s) > 26 or len(s) != len(set(s))
</code></pre>
<p>否则,您可以用字符串可能包含的任何数量的字符替换<code>26</code>;e、 g.<code>62</code>表示大小写字母和数字</p>
<p>截至2020年2月,整个Unicode有137994个不同字符(<a href="https://en.wikipedia.org/wiki/Unicode" rel="nofollow noreferrer">Wikipedia</a>),因此如果字符串长度为150000,则可以返回<code>True</code>,而无需搜索</p>