9.8软开,双AC

import string
class Solution:
    def crypto(self, passwords):
        for password in passwords:
            if len(password) < 8&nbs***bsp;len(password) > 120:
                print(1)
                continue
            if self.containsDigit(password) and self.containsLower(password) and self.containsUpper(password) and self.containsPunctuation(password):
                print(0)
            else:
                print(2)
        return
    
    def containsPunctuation(self, password):
        for p in string.punctuation:
            if p in password:
                return True
        return False
    
    def containsDigit(self, password):
        for p in string.digits:
            if p in password:
                return True
        return False
    
    def containsUpper(self, password):
        for p in string.ascii_uppercase:
            if p in password:
                return True
        return False
    
    def containsLower(self, password):
        for p in string.ascii_lowercase:
            if p in password:
                return True
        return False
    
if __name__ == "__main__":
    s = Solution()
    passwords = list(map(str, input().split(" ")))
    s.crypto(passwords)

class Solution:
    def wordSearch(self, mat, word):
        visited = []
        def dfs(mat, i, j, idx, visited):
            if idx == len(word):
                return True
            
            if 0 <= i-1 < len(mat) and (i-1, j) not in visited and mat[i-1][j] == word[idx]:
                visited.append((i-1, j))
                if dfs(mat, i-1, j, idx+1, visited):
                    return True
                visited.remove((i-1, j))
            
            if 0 <= i+1 < len(mat) and (i+1, j) not in visited and mat[i+1][j] == word[idx]:
                visited.append((i+1, j))
                if dfs(mat, i+1, j, idx+1, visited):
                    return True
                visited.remove((i+1, j))
            
            if 0 <= j-1 < len(mat[0]) and (i, j-1) not in visited and mat[i][j-1] == word[idx]:
                visited.append((i, j-1))
                if dfs(mat, i, j-1, idx+1, visited):
                    return True
                visited.remove((i, j-1))
            
            if 0 <= j+1 < len(mat[0]) and (i, j+1) not in visited and mat[i][j+1] == word[idx]:
                visited.append((i, j+1))
                if dfs(mat, i, j+1, idx+1, visited):
                    return True
                visited.remove((i, j+1))
            return False

        for i in range(len(mat)):
            for j in range(len(mat[0])):
                if mat[i][j] == word[0] and dfs(mat, i, j, 1, [(i,j)]):
                    return True
        return False
    
if __name__ == "__main__":
    s = Solution()
    word = str(input())
    mat = [['A','B','C','E'],
           ['S','F','C','S'],
           ['A','D','E','E']]
    if not word:
        print("false")
    else:
        if s.wordSearch(mat, word):
            print("true")
        else:
            print("false")

#小米#
全部评论

相关推荐

07-22 11:12
门头沟学院 Java
不是,我就随手投的怎么还真发面试啊
皮格吉:大厂特别快的——来自已经被共享中
点赞 评论 收藏
分享
DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享
昨天 16:37
门头沟学院 Java
哎,继续加油吧
投递腾讯等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务