神奕的博客

李松


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

算术表达式的合法性判断与求值(上)

发表于 2014-10-05   |   分类于 Basic-算法与数据结构   |  

在写一个计算器时遇到了一个问题,就是对字符串表示的算术表达式的合法性判断与求值。下面记录一下我的解决方案。

一、问题描述

问题:给定一个字符串,只包含 ‘+’、’-‘、’*’、’/‘、数字、小数点、’(‘ 、’)’。

要求:(1) 判断该算术表达式是否合法; (2) 如果合法,计算该表达式的值。

二、判断表达式的合法性

阅读全文 »

【Linux编程】C/C++获取目录下文件或目录

发表于 2014-09-20   |   分类于 System-Linux   |  

在Unix/Linux系统中,要获取一个指定目录下所有的文件或文件夹,一般用dirent.h(POSIX标准定义的目录操作头文件)。

一、数据类型

在头文件<dirent.h>中定义了两种主要的数据类型。

DIR:代表一个目录流的结构。

阅读全文 »

C/C++内存对齐

发表于 2014-09-20   |   分类于 Lang.-Cpp   |  

下面是网易的一道笔试题:struct { uint32_t m1; char m2; } varray[2];以下哪些判断一定成立?(多选)

  1. sizeof(varray[0]) == 5
  2. sizeof(varray[0]) == 8
  3. (void*)&(varray[0].m1) < (void*)&(varray[0].m2)
  4. (char*)&varray[0] == (char*)&(varray[0].m1)
  5. (char*)&varray[0] + sizeof(varray[0]) == (char*)&varray[1]
  6. (char*)&(varray[0].m2) + 1 == (char*)&varray[1]
  7. (char*)&(varray[0].m2) + 4 == (char*)&varray[1]

这个题目考查的就是内存对齐的知识点,看完这篇文章你就知道这道题应该选什么了。

阅读全文 »

C++进阶之虚函数表

发表于 2014-09-02   |   分类于 Lang.-Cpp   |  

C++通过继承(inheritance)和虚函数(virtual function)来实现多态性。所谓多态,简单地说就是,将基类的指针或引用绑定到子类的实例,然后通过基类的指针或引用调用实际子类的成员函数(虚函数)。本文将介绍单继承、多重继承下虚函数的实现机制。


一、虚函数表

为了支持虚函数机制,编译器为每一个拥有虚函数的类的实例创建了一个虚函数表(virtual table),这个表中有许多的槽(slot),每个槽中存放的是虚函数的地址。虚函数表解决了继承、覆盖、添加虚函数的问题,保证其真实反应实际的函数。

阅读全文 »

Python3标准库(二) re模块

发表于 2014-09-01   |   分类于 Lang.-Python   |  

正则表达式(Regular Expression)是字符串处理的常用工具,通常被用来检索、替换那些符合某个模式(Pattern)的文本。很多程序设计语言都支持正则表达式,像Perl、Java、C/C++。在 Python 中是通过标准库中的 re 模块 提供对正则的支持。


一、正则表达式介绍

1)用途

通过使用正则表达式,可以:

阅读全文 »

Python3标准库(一) 内置函数

发表于 2014-08-30   |   分类于 Lang.-Python   |  

Python中内置了很多的函数,而学习标准库我们需要事先熟悉这些内置函数,所以在这里一个个进行介绍。有些函数比较简单,只给予文字描述,而有些函数会给出示例代码帮助理解。

1、abs(x):返回一个整数或浮点数的绝对值,如果是复数,返回它的模。

2、all(iterable):当 iterable 中所有元素都为 True 时(或者 iterable 为空),返回 True 。

3、any(iterable):当 iterable 中有元素为 True 时,则返回 True 。如果 iterable 为空,返回 False 。

阅读全文 »

Python3基础(十二) 学习总结·附PDF

发表于 2014-08-24   |   分类于 Lang.-Python   |  

Python是一门强大的解释型、面向对象的高级程序设计语言,它优雅、简单、可移植、易扩展,可用于桌面应用、系统编程、数据库编程、网络编程、web开发、图像处理、人工智能、数学应用、文本处理等等。

在学习Python的过程中,我做了一个比较详细、比较系统的学习笔记,适合Python的初学者用以快速入门。它讲解了Python 3.x的基本语法和高级特性,从基本数据类型、运算符、流程控制、函数、文件IO到模块、异常处理和面向对象,并且附上了很多经过测试的代码帮助读者去理解。

如果你是一个Python初学者,希望这个学习笔记能够对你有所帮助。相信如果你看完这个学习笔记,你会对Python有一个整体的了解。

阅读全文 »

Python3基础(十一) 类的拓展

发表于 2014-08-21   |   分类于 Lang.-Python   |  

在类的初印象中,我们已经简单的介绍了类,包括类的定义、类对象和实例对象。本文将进一步学习类的继承、迭代器、发生器等等。


一、类的继承

单继承

派生类的定义如下:

1
2
3
4
5
6
class DerivedClassName(BaseClassName):
<statement-1>
.
.
.
<statement-N>

阅读全文 »

Python3基础(十) 类的初印象

发表于 2014-08-20   |   分类于 Lang.-Python   |  

Python是一种面向对象的脚本语言,所以它也提供了面向对象编程的所有基本特征:允许多继承的类继承机制、派生类可以重写它父类的任何方法、一个方法可以调用父类中同名的方法、对象可以包含任意数量和类型的数据成员。关于继承,将在下一篇博文里面介绍,本文只简单的介绍Python中的类的定义和使用。

一、类定义

最简单的类的定义形式:

1
2
3
4
5
6
class ClassName:
<statement-1>
.
.
.
<statement-N>

阅读全文 »

Python3基础(九) 错误和异常

发表于 2014-08-19   |   分类于 Lang.-Python   |  

本文主要介绍Python中的错误和异常,涉及到简单的异常处理、抛出异常以及清理动作。至于自定义异常类,将在介绍类与继承的时候讲到。

一、定义

常见的两种错误:语法错误 和 异常。

1、语法错误(Syntax Errors)

语法错误,也就是解析时错误。当我们写出不符合python语法的代码时,在解析时会报SyntaxError,并且会显示出错的那一行,并用小箭头指明最早探测到错误的位置。比如:

阅读全文 »
1…456…9
Song Lee

Song Lee

放宽心,多努力

88 日志
17 分类
25 标签
RSS
GitHub CSDN Weibo
Creative Commons
© 2014 - 2016 Song Lee
由 Hexo 强力驱动
主题 - NexT.Mist