第九天(排序)

今天完成题目:1030,242,976,350 1030:距离顺序排列矩阵单元格

  • 遍历一遍所有位置,用字典存储结果

  • 调用sorted对字典排序

242:字母异位

  • 排序法:排序后按序比较

  • 哈希法:建立26个字母的哈希表,此方法最通用

  • 字典法: collections.Counter(s) == collections.Counter(t),类似哈希表,通过内置函数Counter生成字典,速度更快.

  • string的replace不会改变字符串内容,只会返回改变后的值

    对于ASCII字符,可以使用内建的ord和chr方法实现需求:
    >>> chr(97)
    'a'
    >>> ord('a')
    97
    对于Unicode字符,需要使用ord和repr,获得unicode字符的方法,使用unichr:
    >>> print ord(u'\u2020')
    8224
    >>> print repr(unichr(8224))
    u'\u2020'

976:三角形最大的周长

  • 排序后,因为较小的更不可能达到两边之和大于第三边

  • 所以,每次选取三个连续的较大数,判断是否符合两边之和大于第三边

350:两个数组的交集 II

  • Counter变为字典, 然后比较取较小值即可

最后更新于

这有帮助吗?