Apr 10, 2018

[LC][programming][algorithm] tilde operator

https://stackoverflow.com/questions/8305199/the-tilde-operator-in-python


def is_palindromic(s):
    return all(s[i] == s[~i] for i in range(len(s) / 2)) 
LC48:
class Solution:
    def rotate(self, A):
        n = len(A)
        for i in range(n/2):
            for j in range(n-n/2):
                A[i][j], A[~j][i], A[~i][~j], A[j][~i] = \
                         A[~j][i], A[~i][~j], A[j][~i], A[i][j]


LC: 246
class Solution(object):
    def isStrobogrammatic(self, num):
        """
        :type num: str
        :rtype: bool
        0 0  不能為第一個.
        1 1
        6 9
        9 6
        8 8
        """
        from __builtin__ import xrange

        dmap = dict((('0', '0'), ('1', '1'), ('6', '9'),
                     ('9', '6'), ('8', '8')))

        if num[0] == '0' and len(num) > 1:
            return False

        if len(num) % 2:
            # corner cases
            if num[len(num) / 2] not in ('0', '1', '8'):
                return False

        for i in xrange(len(num) / 2):
            if num[i] not in dmap or num[~i] != dmap[num[i]]:
                return False

        return True

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.