• 微软公司笔试题_附上源码解决


    第一道题

    # -*- coding: utf-8 -*-
    '''
    f(a*b, acb) => true 
    f(abc*, abbc) => false 
    f(**bc, bc) => true
    '''
    
    import re
    string='abbc'
    Regex = re.compile(r'(abc)*')
    
    
    def f(Regex,string):
        
        mo = Regex.search(string)
        if mo.group()!='':
            return True
        else:
            return False
    
    
    if __name__ == '__main__':   
        print(f(Regex,string))    
    

    第二道题

    # -*- coding: utf-8 -*-
    """
    Created on Tue Aug  1 09:04:28 2017
    
    @author: toby
    字典  1--a
    chr 97--a
    [0:2] 表示前面两位
    [2:] 表示第三位到最后一位
    考逻辑递归
    """
    
    def output(original, pre):
        #递归的基本情况,当原始字符串长度为0或1的时候
        #当字符串长度为0,返回空
        if len(original) == 0:
            print (pre) 
            return
        if len(original) == 1:
            #输出字符串由前面字母+后面字母,后面字母运用递归原理
            print (pre + chr(96 + int(original)))
            return
            
        #运用递归
        #如果前面两位数小于27
        if int(original[0:2]) < 27:
            #新字符串 k, chr(96+11)
            new_chr = chr(96 + int(original[0:2]))
            #print('new_chr:',new_chr)
            #[2:] 表示第三位到最后一位,开始递归
            output(original[2:], pre + new_chr)
         
        #如果前面两位数大于或等于27    
        #新字符串,[0:1]表示第一位数字    
        new_chr = chr(96 + int(original[0:1]))
        #[1:]第一位到最后一位,开始递归
        output(original[1:], pre + new_chr)
    
    if __name__ == '__main__':
        output('1123', '')
        #output('112345345345435', '')
    
  • 相关阅读:
    Extjs项目使用技巧————文件上传
    项目图片整理
    ExtJs 分组表格控件
    ExtJS实现有机菜单的功能
    ExtJs grid可拖拽行
    ExtJs 分组表格控件----监听
    ExtJS点击添加一个按钮弹出prompt添加combo中
    ExtJS——添加个用户页面
    mysql查询语句个人总结;
    java倒计时器
  • 原文地址:https://www.cnblogs.com/webRobot/p/7267763.html
Copyright © 2020-2023  润新知