【python】判断一个字符串是否包含重复字符?

Python014

【python】判断一个字符串是否包含重复字符?,第1张

题目:判断一个字符串是否包含重复字符。例如good则包含,abc则不包含。

分析:哈希法。

code:

(1)

strs = 'Good'

hashTable = dict()

listStrs = list(strs)

i = 0

while i <len(strs):

    if listStrs[i] in hashTable:

        print("有重复字符")

        break

    else:

        hashTable[listStrs[i]] = None

    i += 1

    if i >= len(strs):

        print("没用重复字符")

        break

程序运行结果:

有重复字符

(2)

def longest_repetition(chars):

    if len(chars) is None or len(chars) <= 1:

        return (chars, len(chars))

    result = [1] * len(chars)

    for left in range(len(chars) - 1):

        for right in range(left + 1, len(chars)):

            if chars[left] == chars[right]:

                print("a")

                result[left] += 1

            else:

                print("aa")

                break

    #return result

    return (chars[result.index(max(result))], max(result))

if __name__ == "__main__":

    txt = 'banaaana'

    print(longest_repetition(txt))

第一种方法:使用正则表达式判断字符串是否包含字母

第二种方法:使用isalpha()。是字母的时候返回True,不是字母的时候返回False,

原文至:https://www.py.cn/faq/python/12102.html

使用isalpha()方法来进行判断。Python isalpha() 方法检测字符串是否只由字母组成。如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

isalpha()方法要检测的字符。它可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符)。

扩展资料

通常认为只有"abc...xyzABC...XYZ"才是字母,其实这是不对的。字母并不是固定的,不同的语言文化可能会包含不同的字母,例如在“简体中文”环境中,西里尔文БГЁ、希腊文ΣΩΔΨΦ(数学物理公式中常用希腊字母)等都将成为字母。

可以通过 setlocale() 函数改变程序的地域设置,让程序使用不同的字符集,从而支持不同的语言文化。一个字母要么是小写字母,要么是大写字母;并且一个小写字母必定对应一个大写字母,反之亦然。这种说法虽然适用于默认的地域设置(默认为"C"),但是并不一定适用于其它的地域设置。

参考资料来源:百度百科-isalpha