Python 使用堆栈验证C文件括号是否匹配
2015-01-29 14:48
661 查看
#!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2015-1-29 @author: beyondzhou @name: test_balancedelimiter.py ''' # Implementation of the algorithm for validating balanced brackets in a C++ source file from mystack import LinkListStack def isValidSource(srcfile): s = LinkListStack() for line in srcfile: for token in line: if token in "{[(": s.push(token) elif token in "}])": if s.isEmpty(): return False else: left = s.pop() if (token == "}" and left != "{") or \ (token == "]" and left != "[") or \ (token == ")" and left != "("): return False return s.isEmpty() def test_balancedelimiter(): # read c file filename = r'E:\Pica8\eclipse\validC.c' fobj = open(filename, 'r').readlines() for line in fobj: print line.strip() print if isValidSource(fobj): print '%s is valid c file!' % filename else: print '%s is no valid c file!' % filename # read c file filename = r'E:\Pica8\eclipse\notvalidC.c' fobj = open(filename, 'r').readlines() for line in fobj: print line.strip() print if isValidSource(fobj): print '%s is valid c file!' % filename else: print '%s is no valid c file!' % filename if __name__ == "__main__": test_balancedelimiter()
int sumList( int theList[], int size ) { int sum = 0; int i = 0; while( i < size ) { sum += theList[ i ]; i += 1; } return sum; } pop item: [ pop item: ( pop item: ( pop item: [ pop item: { pop item: { E:\Pica8\eclipse\validC.c is valid c file! int sumList( int theList[], int size ) { int sum = 0; int i = 0; while( i < size ) { sum += theList[ i ]; i += 1; } return sum; pop item: [ pop item: ( pop item: ( pop item: [ pop item: { E:\Pica8\eclipse\notvalidC.c is no valid c file!
相关文章推荐
- 使用堆栈实现括号的匹配
- 用堆栈实现给定数学表达式括号是否匹配 推荐
- 使用堆栈来实现括号匹配的检查
- python里使用正则表达式的组匹配是否成功之后再自引用
- 栈验证表达式中的括号是否匹配
- 如何检测使用Qt Creator制作的程序中的括号是否匹配
- 如何验证代码中文件中的括号是否匹配
- 验证括号是否匹配
- 使用python 中的IPy 验证IP格式是否合法
- 华为2014机考题目_判断if括号匹配是否合法_堆栈_简单的方法- -
- 输入一串字符串,其中有普通的字符与括号组成(包括‘(’、‘)’、‘[’,']'),要求验证括号是否匹配,如果匹配则输出0、否则输出1.
- 考研数据结构与算法之堆栈的使用(三)利用堆栈匹配括号
- 栈 实际应用1 如何使用栈来判定括号是否匹配
- Matlab 使用栈判断括号是否匹配
- (容器配接器)堆栈应用:判断表达式中的括号是否匹配
- 验证括号是否匹配
- 验证花括号是否匹配
- 判断表达式括号是否匹配,C语言堆栈实现
- 对如下字符串(234453)[234]{2324}分析它的括号使用是否正确,括号匹配(Java实现)
- 面试算法:使用堆栈判断括号的匹配