2020-02-23

接上文, 由左右括号匹配调整为左右符号匹配也是大同小异,判别()[] {}是否匹配的算法代码如下:

def FH_check(string):
    stack = Stack()
    string = list(string)
    balance = True
    index = 0
    while index < len(string) and balance:
        if string[index] in ['(', '[', '{']:
            stack.push(string[index])
        else:  # string[index]为右侧符号
            if stack.isEmpty():  # 如果空栈
                balance = False
            else:   # 非空栈
                if match(string[index], stack.peek()):  # 当前右侧符号与栈顶左侧符号是否配对
                    stack.pop()
                else:
                    balance = False
        index = index + 1
    return print(balance)


def match(right, left):
    right_index = [')', ']', '}'].index(right)
    left_index = ['(', '[', '{'].index(left)
    if right_index == left_index:
        return True
    else:
        return False


a = '(){}[]((({}))[])'
FH_check(a)
>>> True

十进制与二进制转换

def decimal_to_binary(decimal_number):  # 十进制转换为二进制
    stack = Stack()
    Flag = True
    while Flag:
        remainder = decimal_number % 2  # 余数命名为remainder
        stack.push(remainder)
        quotient = decimal_number // 2  # 整除结果命名为quotient
        if quotient == 0:
            Flag = False
        decimal_number = quotient
    return stack  # 返回转换好的二进制结果

a = decimal_to_binary(233)
print(a.items)
>>>[1, 0, 0, 1, 0, 1, 1, 1]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. ES中的文档 概述:ES中的文档使用来存储数据的,也是用来检索数据的,ES使用json格式基于文档进行操作!...
    hanfy阅读 1,756评论 0 1
  • 每日检视111/365 起床:7:20 就寝:11:40 天气:晴 心情:平静 纪念日: 叫我起床的不是闹钟是梦想...
    洒脱转身阅读 1,414评论 0 0
  • 企业玩抖音有哪些方法 说起抖音,相信大家都不陌生吧,10个手机9个抖,今天你抖了吗?近几年随着短视频的崛起,在这领...
    七海挽鱼阅读 1,036评论 0 0
  • 六 无心的爱,源于私欲,占有对方,就是这场战争最初的目的。 "今天我生日,你为什么不来参加我的生日part?"吴卿...
    阿喀旒斯之踵阅读 1,630评论 0 0
  • 真想写点东西,让我的生活有点乐趣,但又不知何从开通。
    6666OK阅读 1,684评论 0 0

友情链接更多精彩内容