草莓什么时候盖薄膜,2020 考研词汇 乱序版 -爱游戏平台

苗坤旺离型膜

1.数据类型篇

1.1 基本数据类型

1.1.1 逻辑推理练习(类型转换)

1.1.1.1 bool函数转换规则

1.1.1.2 int("3.42") 为什么会报错

1.1.1.3 字符串大小比较规则

1.1.1.4 "sd"*3

1.1.2 数据类型考察

1.1.3 交互式解释器练习

知识点讲解

1.2 字符串练习题

1.2.1 字符串内置方法练习

1.2.2 逻辑推理练习(字符串)

1.3 列表与元组练习题

1.3.1 列表基础考察

1.3.2 修改列表

1.3.3 元组概念考察

1.3.4 合并列表

1.3.5 合并字符串

1.3.6 统计练习

1.3.7 列表操作练习

1.3.8 复杂列表练习

1.4 字典练习题

1.4.1 字典基本操作

1.4.2 字典应用(买水果)

1.4.3 字典应用(买水果2)

1.5 集合练习题

2. 基础语法篇

2.1 if 条件语句

2.1.1 单个条件分支

2.1.2 if ... else ...

2.1.3 多条件分支

2.1.4 复杂条件判断

2.2 for循环

2.2.1 range函数基本使用

2.2.2 利用range函数遍历列表

2.2.3 使用for循环遍历字典

2.2.4 continue练习

2.2.5 break练习

2.2.6 寻找列表中的最大值,最小值

2.2.7 寻找组合

2.3 while循环

2.3.1 奇偶数判断

2.3.2 for循环与while循环嵌套

2.3.3 continue的好处

3. 内置函数篇

3.1 abs

题目要求

思路分析

示例代码

3.2 sum

题目要求

思路分析

示例代码

3.3 max

思路分析

示例代码

3.4 min

思路分析

示例代码

3.5 int

思路分析

示例代码

3.6 str

题目要求

思路分析

示例代码

3.7 float

题目要求

题目分析

示例代码

3.8 len

题目要求

思路分析

示例代码

3.9 enumerate

题目要求

思路分析

示例代码

3.10 all

题目要求

思路分析

示例代码

3.11 any

题目要求

思路分析

示例代码

3.12 bin

思路分析

示例代码

5. 字符串方法

4.1 find

4.2 replace

4.3 split

4.4 字符串大写转小写

题目要求

思路分析

示例代码

4.5 判断字符串是否全部为小写字母

题目要求

思路分析

示例代码

4.6 实现isdigit

题目要求

思路分析

示例代码

4.7 startswith

题目要求

思路分析

示例代码

4.8 endswith

题目要求

思路分析

示例代码

4.9 实现字符串capitalize方法

题目要求

思路分析

示例代码

4.10 实现字符串count方法

题目要求

思路分析

示例代码

6. 排序算法篇

5.1 冒泡排序

5.2 快速排序

5.3 希尔排序

算法定义

分组

第一轮希尔排序

第二轮希尔排序

第三轮希尔排序

示例代码

5.4 归并排序

合并两个有序集合

5.5 归并排序

5.6 选择排序

示例代码

5.7 堆排序

堆的概念

父节点,子节点

最大堆,最小堆

如何建立一个堆

不是所有节点都有子节点

示例代码

最大堆,最小堆

堆排序的思路

示例代码

5.8 插入排序

7. 简单算法篇

6.1 打印杨辉三角

题目要求

思路分析

代码示例

6.2 计算三角形的周长和面积

题目要求

思路分析

6.3 忽略大小比较字符串是否相等

题目要求

思路分析

示例代码

6.4 寻找数组最大值和最小值

题目要求

思路分析

实例代码

6.5 先递增后递减数组最大值

题目要求

思路分析

示例代码

拓展

6.6 生成矩阵

题目要求

思路分析

示例代码

6.7 矩阵对角线元素和

题目要求

思路分析

实例代码

6.8 输出今天的信息

思路分析

示例代码

6.9 可变对象与不可变对象考察

6.9.1 不可变对象考察

6.9.2 可变对象考察

6.9.3 不可变对象考察

6.9.4 可变对象考察

6.10统计日期间隔

题目要求

思路分析

示例代码

6.11 修改字典里的value

题目要求

思路分析

示例代码

6.12打印菱形

题目要求

思路分析

示例代码

6.13 打印九九乘法表

题目要求

思路分析

示例代码

6.14 统计字符数量

题目要求

思路分析

示例代码

6.15 水仙花数

思路分析

示例代码

6.16 完全平方数

思路分析

示例代码

6.17求三位数组合

思路分析

示例代码

6.18 翻转列表

题目要求

思路分析

示例代码

6.19 列表偏移

题目要求

思路分析

示例代码

6.20 比较三个数的大小

思路分析

示例代码

6.21 求学生最高分数科目和分数

题目要求

思路分析

示例代码

6.22 水果

思路分析

示例代码

7 中等难度算法练习题

7.1 验证回文串

题目要求

思路分析

示例代码

7.2 翻转字符串里的单词

题目要求

思路分析

示例代码

7.3 寻找峰值

题目要求

思路分析

示例代码

7.4 字符串转整数

题目要求

思路分析

示例代码

7.5 判断数组是山脉数组

思路分析

示例代码

7.6 二进制中为1的位数

题目要求

思路分析

示例代码

小小的升级

7.7 寻找缺失数字

题目要求

思路分析

解法1 利用递增序列求和

解法2 利用索引

解法3 利用亦或运算

7.8 二进制求和

题目要求

思路分析

示例代码

7.9 第一个只出现一次的字符

题目要求

思路分析

示例代码

7.10 字符串相乘

题目要求

思路分析

最简单的乘法

字符串相加

字符串相乘

全部代码

7.11 整数翻转

题目要求

思路分析

示例代码

7.12 时间转换

题目要求

思路分析

实例代码

7.13 字典里的value (2)

题目要求

思路分析

示例代码

7.14统计代码行数

题目要求

思路分析

示例代码

7.15 提取单词

题目要求

思路分析

示例代码

7.16 学生成绩分析

题目要求

思路分析

示例代码

7.17 学生成成绩分析

题目要求

7.18 投票选班长

题目要求

示例代码

7.19 水果账单

题目要求

思路分析

示例代码

7.20 文件读取解析

思路分析

示例代码

7.21 有效电话号码

题目要求

思路分析

示例代码:

7.22 旋转数组

题目要求

思路分析

思路1,多次移动

思路2, 原地翻转

7.23 合并文件

题目要求

思路分析

示例代码

7.24 拆分文件

题目要求

思路分析

示例代码

8 地狱难度算法练习题

8.1 删除有序序列中的重复项

题目要求

思路分析

示例代码

8.2 组合总数

题目要求

思路分析

示例代码

8.3 不同的子序列(超出时间限制)

题目要求

思路分析

示例代码

8.4逆波兰表达式求值

题目要求

思路分析

示例代码

8.5 最长公共前缀

题目要求

思路分析

示例代码

8.6 最小区间(超出时间限制)

题目要求

思路分析

示例代码

8.7森林中的兔子

题目要求

解题思路

示例代码

8.8最大子序和

思路分析

示例代码

小结

8.8 简单的计算器

题目要求

思路分析

1 表达式预处理

2 中序转后序

3 后序表达式计算

全部代码

8.9最长上升子序列

题目要求

思路分析

示例代码

8.10 山脉数组的顶峰索引

题目要求

思路分析

示例代码

使用二分查找法

8.11 两个有序数组中找第k大的数

题目要求

思路分析

示例代码

8.12 搜索二维矩阵

题目要求

思路分析

示例代码

8.13 判断子序列

题目要求

思路分析

示例代码

8.14 最长重复子数组

题目要求

题目分析

示例代码

8.15 找到 k 个最接近的元素

题目要求

思路分析

第一个大于等于目标值的元素位置

距离目标值最近的元素位置

k个最接近的元素

完整代码

8.16 实现全排列算法

题目要求

思路分析

1、中学数学

2、递归算法

3、终止条件

4、还原列表

示例代码

8.17 还原ip地址

题目要求

思路分析

示例代码

8.18亲密字符串

题目要求

思路分析

示例代码

8.19 最大正方形

题目要求

思路分析

示例代码

8.20接雨水

题目要求

思路分析

思考才是最重要的

两个基本判断

算法思路

实例代码

8.21 字符串的排列

题目要求

思路分析

暴力算法

更优的解法

实例代码

130道练习题,涵盖基础内容的方方面面

第1篇 数据类型篇

第2篇 基础语法篇

第3篇 内置函数篇

第4篇 字符串方法

第5篇 排序算法篇

第6篇 简单算法篇

第7篇 中等难度算法篇

地狱难度算法篇

?

1.数据类型篇

本篇的练习题旨在考察你对基本数据类型的理解熟悉程度,适合刚接触python的初学者用来巩固对基础知识的理解

1.1 基本数据类型

1.1.1 逻辑推理练习(类型转换)

不运行程序,说出下面程序的执行结果

1. 4.0 == 4

2. "4.0" == 4

3. bool("1")

4. bool("0")

5. str(32)

6. int(6.26)

7. float(32)

8. float("3.21")

9. int("434")

10. int("3.42")

11. bool(-1)

12. bool("")

13. bool(0)

14. "wrqq" > "acd"

15. "ttt" == "ttt "

16. "sd"*3

17. "wer" "2322"

答案如下

1. true

2. false

3. true

4. true

5. '32'

6. 6

7. 32.0

8. 3.21

9. 434

10. 会报错

11. true

12. false

13. false

14. true

15. false

16. "sdsdsd"

17. 'wer2322'

关于这些答案,要做到知其然且知其所以然,编程需要精准的知道每一个细节,下面对其中一些可能让你感到困惑的知识点进行讲解

1.1.1.1 bool函数转换规则

bool函数进行转换时,其结果取决于传入参数与true和false的等价关系,只需记住一点即可

0 , 空字符串, none在条件判断语句中等价于false, 其他数值都等价于true

bool函数在做数据类型转换时遵循该原则

1.1.1.2 int("3.42") 为什么会报错

字符串"3.42"可以转成float类型数据3.42, 3.42可以转成int类型数据3,但是字符串"3.42"却不可以直接使用int函数转成3,讲实话,我也觉得这个函数有些不灵活,或许是语言的发明者有自己的考虑吧,咱们对这种问题,不必深究,先做到知道它是什么,将来再去研究为什么

1.1.1.3 字符串大小比较规则

两个字符串在比较大小时,比的不是长度,而是内容

字符串左对齐后,逐个字符依次比较,直到可以分出胜负

1.1.1.4 "sd"*3

"sd"*3 的意思是sd重复3次,生成一个新的字符串

1.1.2 数据类型考察

请说出下面表达式结果的类型

1. "true"

2. "flase"

3. 4 >= 5

4. 5

5. 5.0

6. true

非常简单的送分题

1. str

2. str

3. bool

4. int

5. float

6. bool

唯一需要解释的是4 >= 5,4比5小,怎么可能大于等于5呢,这是错误的,既然是错的,那么就等于false,false的类型是bool

1.1.3 交互式解释器练习

请在交互式解释器里回答下面的题目

1. 3的5次方

2. 7对2求模

3. 9除5,要求有小数部分

4. 9除5,要求没有小数部分

5. 用程序计算根号16,也就是16的2分之一次方

答案如下

1. 3**5

2. 7%2

3. 9/5

4. 9//5

5. import math

math.sqrt(16)

知识点讲解

幂运算用两个, 2的2次方表示为2*2

求模运算用%, 其实就是求余数,不知道余数的打电话给小学老师

除法中,希望结果有小数部分时用/, 希望只保留整数部分时用 // ,没啥可解释的,请记住他们的区别,懒得记,就别学编程,编程不适合懒惰的人

开根号,要用到math模块的sqrt方法,这个题目需要你自己去百度或是谷歌,第一次明确的建议你,一定要好好利用搜索引擎,不会用搜索引擎的程序员,永远是菜鸟

1.2 字符串练习题

1.2.1 字符串内置方法练习

在交互式解释器中完成下列题目

将字符串 "abcd" 转成大写

计算字符串 "cd" 在 字符串 "abcd"中出现的位置

字符串 "a,b,c,d" ,请用逗号分割字符串,分割后的结果是什么类型的?

"{name}喜欢{fruit}".format(name="李雷") 执行会出错,请修改代码让其正确执行

string = "python is good", 请将字符串里的python替换成 python,并输出替换后的结果

有一个字符串 string = "python修炼第一期.html",请写程序从这个字符串里获得.html前面的部分,要用尽可能多的方式来做这个事情

如何获取字符串的长度?

"this is a book",请将字符串里的book替换成apple

"this is a book", 请用程序判断该字符串是否以this开头

"this is a book", 请用程序判断该字符串是否以apple结尾

"this is a book", 请将字符串里的大写字符转成小写字符

"this is a book", 请将字符串里的小写字符,转成大写字符

"this is a book\n", 字符串的末尾有一个回车符,请将其删除

在看答案之前,我要非常明确的告诉你,答案所涉及的每一个字符串方法,都是需要你记忆下来的,就像九九乘法表那样熟记于心,这不是要求,而是必须,否则,你凭什么说你会一门编程语言呢? 聪明从来不自己骗自己!

答案如下

1. "abcd".upper()

2. "abcd".find('cd')

3. "a,b,c,d".split(',')

4. "{name}喜欢{fruit}".format(name="李雷", fruit='苹果')

5. string.replace('python', 'python')

6. string[0:string.find('.html')] 或者string[0:-5]

7. 使用len函数

8. "this is a book".replace('book', 'apple')

9. "this is a book".startswith('this')

10. "this is a book".endswith('apple')

11. "this is a book".lower()

12. "this is a book".upper()

13. "this is a book\n".strip()

这里只对其中2个题目讲解

第4小题的程序直接运行会报错,因为字符串里面有两个需要替换的位置,而format方法里只传入了一个参数,显然是不够

第13小题,strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列, \n 就是换行符,这里又涉及到转义字符这个概念,本篇不做详细讲解,求知欲强的同学可以自己百度一下

1.2.2 逻辑推理练习(字符串)

不用代码,口述回答下面代码的执行结果

string = "python is good"

string[1:20]

string[20]

string[3:-4]

string[-10:-3]

string.lower()

string.replace("o", "0")

string.startswith('python')

string.split()

len(string)

string[30]

string.replace(" ", '')

答案如下

1. 'ython is good'

2. 报错

3. 'hon is '

4. 'on is g'

5. 'python is good'

6. 'pyth0n is g00d'

7. false

8. ['python', 'is', 'good']

9. 14

10. 报错

11. 'pythonisgood'

第2题和第10题都报错,是因为超出了索引范围,字符串长度为14,你去20和30的位置取值,当然会报错

关于切片操作,只需要知道从哪里开始到哪里结束就一定能推导出答案,以string[3:-4]为例,3是开始的位置,-4是结束的位置,但这个范围是左闭右开的,从3开始没错,但不会到-4,而是到-5,更前面的一个位置,python支持负数索引,或者说是反向索引,从右向左从-1开始逐渐减小。

第一题中,做切片的时候是从1开始,到20结束,即便是右开,直到19,也仍然超出了索引范围,为什么不报错呢,这就是语言设计者自己的想法了,切片时,不论是开始位置还是结束位置,超出索引范围都不会报错,我猜,大概是由于切片是一个范围操作,这个范围内有值就切出来,没值返回空字符串就好了。

1.3 列表与元组练习题

1.3.1 列表基础考察

已知一个列表

lst = [1,2,3,4,5]

求列表的长度

判断6 是否在列表中

lst [6, 7, 8] 的结果是什么?

lst*2 的结果是什么

列表里元素的最大值是多少

列表里元素的最小值是多少

列表里所有元素的和是多少

在索引1的后面新增一个的元素10

在列表的末尾新增一个元素20

答案如下

1. len(lst)

2. 6 in lst

3. [1,2,3,4,5,6,7,8]

4. [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

5. max(lst)

6. min(lst)

7. sum(lst)

8. lst.insert(1, 10)

9. lst.append(20)

以上都是对列表基础操作,所用到的每一个函数,列表的每一个方法,都是需要你熟记于心的

1.3.2 修改列表

lst = [1, [4, 6], true]

请将列表里所有数字修改成原来的两倍

答案如下

lst[0] = 2

lst[1][0] = 4

lst[1][1] = 12

你以为存在一个函数,其功能便是将列表里所有的数据都变成原来的两倍,这样才显得变成语言是一个非常神奇的东西,但是很遗憾的告诉你,那些神奇的东西都是程序员自己实现的。

想要修改列表里的数据,必须通过索引对其重新赋值,上面的方法很low,你也可以写一个函数来实现这个功能,我们假设要处理的列表里只int,float,bool,和list数据,不管嵌套基层list,这个函数都应该能正确处理,下面是一段示例代码

def double_list(lst):

for index, item in enumerate(lst):

if isinstance(item, bool):

continue

if isinstance(item, (int, float)):

lst[index] *= 2

if isinstance(item, list):

double_list(item)

if __name__ == '__main__':

lst = [1, [4, 6], true]

double_list(lst)

print(lst)

1.3.3 元组概念考察

写出下面代码的执行结果和最终结果的类型

(1, 2)*2

(1, )*2

(1)*2

答案如下

1. (1, 2, 1, 2)

2. (1, 1)

3. 2

第一题应该没有异议,关键是第2题和第3题,元组里只有一个数据时,必须有逗号,如果没有逗号,就变成了第3题的形式,第3题本质上是1*2,那对小括号就如同我们小学学过的小括号一样,只是为了体现运算优先级而已。

当元组只有一个数据时,如果不省略了逗号,那么小括号的作用就不再是表示元组,而是表示运算优先级

1.3.4 合并列表

lst = [1,2,3]

lst2 = [4,5,6]

不使用 号运算符,将lst2合并到lst的末尾,并思考,这个过程中,是否产生了新的列表

答案

lst.extend(lst2)

这个过程中不会产生新的列表,最直观的检验方式就是print(id(lst)),合并前后,lst的内存地址都没有发生变化,只是列表里的内容发生了变化

1.3.5 合并字符串

str1 = "1,2,3"

str2 = "4,5,6"

请将str2合并到str1的末尾,并思考,这个过程中,是否产生了新的字符串

答案

str1 = str2

这个过程中,产生的新的字符串,字符串是不可变对象,从字面上理解,似乎str1的内容发生变化了,但本质上是产生了新的字符串并赋值给str1, print(str1), 合并前后的内存地址是不一样的

1.3.6 统计练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列题目

找出列表里的最大值

找出列表里的最小值

找出列表里最大值的个数

计算列表里所有元素的和

计算列表里元素的平均值

计算列表的长度

找出元素6在列表中的索引

答案

1. max(lst)

2. min(lst)

3. lst.count(max(lst))

4. sum(lst)

5. sum(lst)/float(len(lst))

6. len(lst)

7. lst.index(6)

这道题考察的是你对内置函数的理解和运用

下面的题目不允许写代码,仅凭思考来回答

lst[2:4] 的值是什么

lst[1: -3]的值是什么

lst[-5]的值是什么

lst[:-4] 的值是什么

lst[-4:] 的值是什么

这个题目主要考察你对列表切片操作的理解

1. [6, 7]

2. [5, 6, 7, 8, 9]

3. 8

4. [2, 5, 6, 7, 8]

5. [9, 2, 9, 9]

列表的切片操作,最关键的一点在于左闭右开,结束位置的数据不会列入结果中

1.3.7 列表操作练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列操作

在列表的末尾增加元素15

在列表的中间位置插入元素20

将列表[2, 5, 6]合并到lst中

移除列表中索引为3的元素

翻转列表里的所有元素

对列表里的元素进行排序,从小到大一次,从大到小一次

答案

1. lst.append(15)

2. lst.insert(len(lst)//2, 20)

3. lst.extend([2, 5, 6])

4. lst.remove(lst[3])

5. lst = lst[::-1]

6. lst.sort() lst.sort(reverse=true)

1.3.8 复杂列表练习

列表lst 内容如下

lst = [1, 4, 5, [1, 3, 5, 6, [8, 9, 10, 12]]]

不写任何代码,仅凭思考来回答下列问题

列表lst的长度是多少

列表lst中有几个元素

lst[1] 的数据类型是什么

lst[3]的数据类型是什么

lst[3][4] 的值是什么

如果才能访问到 9 这个值

执行lst[3][4].append([5, 6])后,列表lst的内容是什么,手写出来

lst[-1][-1][-2]的值是什么

lst[-2]的值是什么

len(lst[-1]) 的值是什么

len(lst[-1][-1])的值是什么

lst[-1][1:3] 的值是什么

lst[-1][-1][1:-2]的值是什么

第1题和第2题其实是一个意思,原本统计列表里数据个数不是什么难事,可一旦出现了嵌套列表的情况,有人就分不清了,列表里的数据是以逗号分隔的,lst[3] 是一个列表,其余都是int类型数据,因此lst的长度是4

第3题,lst[1] = 4,是int类型数据

第4题,lst[3] 的数据类型是列表

第5题,lst[3]的值是[1, 3, 5, 6, [8, 9, 10, 12]],仍然是一个列表,其索引为4的数据是[8, 9, 10, 12],是列表

第6题,lst[3][4][1]

第7题,[1, 4, 5, [1, 3, 5, 6, [8, 9, 10, 12, [5, 6]]]],参考5,6两个题目的解答

第8题,lst[-1]的值是[1, 3, 5, 6, [8, 9, 10, 12]], 再次取索引为-1的数据为[8, 9, 10, 12],取索引为-2的数据为10

第9题,5

第10题,5

第11题,4

第12题, [3, 5], lst[-1]的值是[1, 3, 5, 6, [8, 9, 10, 12]]

第13题,[9], lst[-1][-1]的值是[8, 9, 10, 12],切片起始位置索引是1,值为9,结束位置是-2,值为10,由于左闭右开,最终结果是[9]

1.4 字典练习题

1.4.1 字典基本操作

字典内容如下

dic = {

'python': 95,

'java': 99,

'c': 100

}

用程序解答下面的题目

字典的长度是多少

请修改'java' 这个key对应的value值为98

删除 c 这个key

增加一个key-value对,key值为 php, value是90

获取所有的key值,存储在列表里

获取所有的value值,存储在列表里

判断 javascript 是否在字典中

获得字典里所有value 的和

获取字典里最大的value

获取字典里最小的value

字典 dic1 = {'php': 97}, 将dic1的数据更新到dic中

第1题,len(dic),结果为3

第2题,dic['java'] = 98,对字典里value的修改,必须通过key才可以

第3题,del dic['c']

第4题,dic['php'] = 90

第5题,lst = list(dic.keys())

第6题,lst = list(dic.values())

第7题,'javascript' in dic

第8题,sum(dic.values())

第9题,max(dic.values())

第10题,min(dic.values())

第11题,dic.update(dic1)

1.4.2 字典应用(买水果)

小明去超市购买水果,账单如下

苹果 32.8

香蕉 22

葡萄 15.5

请将上面的数据存储到字典里,可以根据水果名称查询购买这个水果的费用

很简单哦,用水果名称做key,金额做value,创建一个字典

info = {

'苹果':32.8,

'香蕉': 22,

'葡萄': 15.5

}

1.4.3 字典应用(买水果2)

小明,小刚去超市里购买水果

小明购买了苹果,草莓,香蕉,一共花了89块钱,,小刚购买了葡萄,橘子,樱桃,一共花了87块钱

请从上面的描述中提取数据,存储到字典中,可以根据姓名获取这个人购买的水果种类和总费用。

以姓名做key,value仍然是字典

info = {

'小明': {

'fruits': ['苹果', '草莓', '香蕉'],

'money': 89

},

'小刚': {

'fruits': ['葡萄', '橘子', '樱桃'],

'money': 87

}

}

1.5 集合练习题

集合间的运算

lst1 = [1, 2, 3, 5, 6, 3, 2]

lst2 = [2, 5, 7, 9]

哪些整数既在lst1中,也在lst2中

哪些整数在lst1中,不在lst2中

两个列表一共有哪些整数

虽然题目一直在问两个列表,但用列表解答这3个题目效率很低,你应该用集合

lst1 = [1, 2, 3, 5, 6, 3, 2]

lst2 = [2, 5, 7, 9]

set1 = set(lst1)

set2 = set(lst2)

# 哪些整数既在lst1中,也在lst2中

print(set1.intersection(set2))

# 哪些整数在lst1中,不在lst2中

print(set1.difference(set2))

# 两个列表一共有哪些整数

print(set1.union(set2))

2. 基础语法篇

基础语法篇的练习题,不涉及复杂的逻辑推理,旨在检查你对基础语法的掌握情况

2.1 if 条件语句

2.1.1 单个条件分支

使用input函数接收用户的输入,如果用户输入的整数是偶数,则使用print函数输出"你输入的整数是:{value}, 它是偶数", {value}部分要替换成用户的输入。

完成这个练习题需要你掌握下面4个知识点

input函数的作用

字符串转int

取模运算

字符串格式化

value = input("请输入一个整数:")

i_value = int(value)

if i_value % 2 == 0:

print("你输入的整数是:{value}, 它是偶数".format(value=value))

2.1.2 if ... else ...

使用input函数接收用户的输入,如果用户输入的整数是偶数,则使用print函数输出"你输入的整数是:{value}, 它是偶数",如果是奇数,则使用print函数输出"你输入的整数是:{value}, 它是奇数"

value = input("请输入一个整数:")

i_value = int(value)

if i_value % 2 == 0:

print("你输入的整数是:{value}, 它是偶数".format(value=value))

else:

print("你输入的整数是:{value}, 它是奇数".format(value=value))

?

2.1.3 多条件分支

使用input函数接收用户的输入数据,如果用户输入python,则输出90, 如果用户输入java,输出95,如果用户输入php,输出85,其他输入,程序输出0

value = input("请输入一个整数:")

if value == 'python':

print(90)

elif value == 'java':

print(95)

elif value == 'php':

print(85)

else:

print(0)

2.1.4 复杂条件判断

使用input函数接收用户的输入,如果输入的数据不可以转换成int类型数据,则输出"无法使用int函数转换",如果可以,则将用户的输入转成int类型数据并继续判断。

如果输入数据是奇数,则将其乘以2并输出,如果是偶数,则判断是否能被4整除,如果可以则输出被4整除后的值,若不能被4整数,则判断是否大于20,如果大于20则输出与20的差值,如果小于等于20,则直接输出该值

程序代码如下

value = input("请输入一个整数:")

if not value.isdigit():

print('无法使用int函数转换')

else:

i_value = int(value)

if i_value % 2 == 1:

print(i_value*2)

elif i_value % 4 == 0:

print(i_value / 4)

elif i_value > 20:

print(i_value - 20)

else:

print(i_value)

画出程序流程图如下

?

2.2 for循环

2.2.1 range函数基本使用

range(3, 20, 4)

range(10, -3, -4)

range(10, 5)

range(2, 12)

不使用程序,说出上面4个range产生的整数序列

2.2.2 利用range函数遍历列表

lst = [1, 3, 5, 2, 7, 9]

for index in range(len(lst)):

print(lst[index])

参照上面的代码,从后向前遍历

遍历输出列表里的所有偶数

遍历列表,输出大于3的奇数

2.2.3 使用for循环遍历字典

遍历字典有两种方法

方法1

dic = {

'python': 90,

'java': 95

}

for key in dic:

print(key, dic[key])

方法2

dic = {

'python': 90,

'java': 95

}

for key, value in dic.items():

print(key, value)

2.2.4 continue练习

2.2.5 break练习

从列表 lst = [1, 3, 5, 2, 7, 9, 10] 中寻找1个偶数并输出,代码如下

lst = [1, 3, 5, 2, 7, 9, 10]

for item in lst:

if item % 2 == 0:

print(item)

break

题目要求寻找一个偶数,当找到这个偶数后,循环就可以终止了,使用break可以终止本次循环,你可以去掉代码中的break,再次执行代码,观察代码的执行效果

2.2.6 寻找列表中的最大值,最小值

lst = [3, 6, 1, 8, 1, 9 , 2]

max_value = lst[0]

for item in lst:

if item > max_value:

max_value = item

print(max_value)

参照上面的代码,写代码寻找列表的最小值

写代码寻找列表里的最小偶数

写代码寻找列表里的最大奇数

2.2.7 寻找组合

lst1 = [3, 6, 1, 8, 1, 9 , 2]

lst2 = [3, 1, 2, 6, 4, 8, 7]

for item1 in lst1:

for item2 in lst2:

if item1 item2 == 10:

print((item1, item2))

上面的代码利用嵌套循环,从两个列表里各取1个数,如果这两个数的和等于10,则以元组的方式输出这两个数

参照上面的代码,寻找两个数的差的绝对值等于2的组合

两个列表里各取出一个值,item1和item2, 请计算item1*item2的最大值

2.3 while循环

2.3.1 奇偶数判断

使用input函数接收用户输入的整数,如果是偶数,则使用print函数输出"你输入的是一个偶数",反之输出"你输入的是一个奇数",用户可以输入多次,直到输入quit时程序退出

while true:

input_str = input("请输入一个正整数,想退出程序请输入 quit:")

if input_str == "quit":

break

number = int(input_str)

if number % 2 == 0:

print("你输入的是一个偶数")

else:

print("你输入的是一个奇数")

2.3.2 for循环与while循环嵌套

已知 lst = [2, 3, 4]

依次要求用户输入2,3,4 的整数倍,先让用户输入2的倍数,如果用户输入的正确,输出“输入正确”,否则输出 “输入错误”,如果用户输入quit,则停止当前的输入,让用户输入3的倍数,输入3的倍数的过程中,如果用户输入quit,则让用户输入4的倍数

lst = [2, 3, 4]

for item in lst:

while true:

input_str = input("请输入{number}的倍数,想停止输入时,输入quit:".format(number=item))

if input_str == 'quit':

break

number = int(input_str)

if number % item == 0:

print("输入正确")

else:

print("输入错误")

2.3.3 continue的好处

break是跳出循环体,continue是跳过continue语句后面的代码块,循环并不停止

题目要求:

使用input函数接受用户的输入,如果用户输入的数值小于等于10,则判断是奇数还是偶数,如果数值大于10,则输出“输入大于10,不判断奇偶”,用户输入quit,结束程序

while true:

input_str = input("请输入一个正整数,如果想停止程序,输入quit:")

if input_str == 'quit':

break

number = int(input_str)

if number > 10:

continue

if number % 2 == 0:

print("输入为偶数")

else:

print("输入为奇数")

当number大于10 的时候,后面的那4行代码就不会被执行,直接进入到下一次循环。

上面的代码,也可以不使用continue

while true:

input_str = input("请输入一个正整数,如果想停止程序,输入quit:")

if input_str == 'quit':

break

number = int(input_str)

if number < 10:

if number % 2 == 0:

print("输入为偶数")

else:

print("输入为奇数")

两段代码,实现了一样的功能,但对比一下不难发现,使用了不使用continue,代码的嵌套层次更深,如果嵌套多了,会让代码变得难以阅读,难以管理

但使用continue,就可以减少代码层次,代码的理解和管理都更容易,大于10的时候,continue跳过后面的代码,在逻辑思考时,这种一刀两断的方法让思路更清晰。

3. 内置函数篇

本篇的练习题不是考察你如何使用python的内置函数,而是通过实现与内置函数相同功能的函数来达到锻炼提升编码能力的目的

3.1 abs

题目要求

abs函数返回数字的绝对值,请实现下面的函数,模仿abs函数的功能,返回数字的绝对值

def my_abs(number):

pass

思路分析

处于程序健壮性考虑,要对传入的number参数进行检查,判断其类型是否为数字类型,float和int是比较常用的数据类型,复数类型基本接触不到,因此不考虑。

判断变量类型,可以使用isinstance函数,该函数的第一个参数是需要检查类型的对象,第二个参数可以是数据类型,也可以是一个元组,元组里是多个数据类型,只要满足其中一个就返回true

如果number的数值小于0,乘以-1就得到了绝对值

示例代码

def my_abs(number):

if not isinstance(number, (float, int)):

return number

if number < 0:

number *= -1

return number

if __name__ == '__main__':

print(my_abs(-3))

print(my_abs(-3.9))

print(my_abs(54.3))

3.2 sum

题目要求

sum函数可以获取列表所有数据的总和,模仿这个功能实现下面的函数,

def my_sum(lst):

"""

返回列表里所有数据的总和

如果列表里有非数字类型的数据,忽略不管

:param lst:

:return:

"""

pass

思路分析

对传入的参数lst,要进行类型检查

遍历列表,遇到数字类型的数据就进行加和操作

示例代码

def my_sum(lst):

"""

返回列表里所有数据的总和

:param lst:

:return:

"""

sum_res = 0

if not isinstance(lst, list):

return sum_res

for item in lst:

if isinstance(item, (float, int)):

sum_res = item

return sum_res

if __name__ == '__main__':

lst = [3, 4, '43', 5.4]

print(my_sum(lst))

3.3 max

max函数返回序列中的最大值,传入的参数可以是列表,也可以是元组,实现下面的函数,实现同样的功能,如果序列里有非数字类型的数据,可以忽略,如果序列是空的,可以直接返回none

def my_max(seq):

"""

返回序列里的最大值

:param lst:

:return:

"""

思路分析

对传入的参数seq要进行类型检查,如果既不是列表,也不是元组,那么就返回none

如果序列是空的,也可以直接返回none

遍历序列里的元素,如果数据的类型不属于数字类型,那么就忽略该数据

示例代码

def my_max(seq):

"""

返回序列里的最大值

:param lst:

:return:

"""

max_value = none

if not isinstance(seq, (list, tuple)):

return max_value

if len(seq) == 0:

return max_value

max_value = seq[0]

for item in seq:

if not isinstance(item, (float, int)):

continue

if item > max_value:

max_value = item

return max_value

if __name__ == '__main__':

lst = [3, 4, '43', 5.4]

print(my_max(lst))

3.4 min

min函数返回序列中的最小值,传入的参数可以是列表,也可以是元组,实现下面的函数,实现同样的功能,如果序列里有非数字类型的数据,可以忽略

def my_min(seq):

"""

返回序列里的最小值

:param lst:

:return:

"""

pass

思路分析

整体思路与3.3的my_max函数相同

示例代码

def my_min(seq):

"""

返回序列里的最小值

:param lst:

:return:

"""

min_value = none

if not isinstance(seq, (list, tuple)):

return min_value

if len(seq) == 0:

return min_value

min_value = seq[0]

for item in seq:

if not isinstance(item, (float, int)):

continue

if item < min_value:

min_value = item

return min_value

if __name__ == '__main__':

lst = [3, 4, '43', 5.4]

print(my_min(lst))

3.5 int

内置函数int,可以将float,全是数字的字符串转成int类型的数据,为了降低难度,这个练习题只要求你实现其中一种功能,将全是由数字组成的字符串转成int类型数据,例如将字符串"432" 转成整数432,函数定义如下

def my_int(string):

"""

将字符串string转成int类型数据

不考虑string的类型,默认就是符合要求的字符串

传入字符串"432" 返回整数432

:param string:

:return:

"""

pass

思路分析

题目的要求非常明确,只将"432"这种全是由数字组成的字符串转成int类型数据,这样就没什么难度了

遍历字符串,每个将字符串里的每个字符转成int类型的数值,这个过程可以使用字典来完成,建立一个字典,字符串的数字做key,int类型的数字做value,例如下面的字典

str_int_dic = {

'0': 0,

'1': 1,

'2': 2,

'3': 3,

'4': 4,

'5': 5,

'6': 6,

'7': 7,

'8': 8,

'9': 9

}

得到数字后,还得考虑这个数字是哪一位的,是千位还是百位,这里可以使用一个技巧,遍历的过程是从左向右进行的,设置一个变量保存转换后的int数据,初始值赋为0,每一次循环后,都用这个变量乘10再加上所遍历到数值,这样就巧妙的解决了位数问题。

示例代码

str_int_dic = {

'0': 0,

'1': 1,

'2': 2,

'3': 3,

'4': 4,

'5': 5,

'6': 6,

'7': 7,

'8': 8,

'9': 9

}

def my_int(string):

"""

将字符串string转成int类型数据

不考虑string的类型,默认就是符合要求的字符串

传入字符串"432" 返回整数432

:param string:

:return:

"""

res = 0

for item in string:

int_value = str_int_dic[item]

res = res*10 int_value

return res

if __name__ == '__main__':

print(my_int('432'))

3.6 str

题目要求

内置函数str的功能非常强大,想要模仿实现一个相同功能的函数是非常困难的,因此本练习题只要求你将int类型的数据转换成字符串,实现下面的函数

def my_str(int_value):

"""

将int_value转换成字符串

:param int_value:

:return:

"""

pass

思路分析

int类型的数据,不能像字符串那样使用for循环进行遍历,但可以结合 / 和 % 操作符从个位向高位进行遍历,获取到某一位的数字之后,将其转换成字符串,append到一个列表中。

遍历结束之后,翻转列表,用空字符串join这个列表,即可得到转换后的字符串。

单个数字,如何转成字符串呢?可以使用3.6中类似的方法,创建一个字典,数字为key,字符串数字为value

int_str_dict = {

0: '0',

1: '1',

2: '2',

3: '3',

4: '4',

5: '5',

6: '6',

7: '7',

8: '8',

9: '9',

}

获得某一位数字后,通过字典获得对应的字符串,此外,还可以通过ascii码表来获得与之对应的数字字符。以3为例,chr(3 48)即可得到字符串'3',其原理,字符串3的ascii码表十进制数值为51,恰好比3大48,其他数值,也同样如此。

大致的思路已经清晰了,接下来是一些细节问题

如果传入的参数是0,那么直接返回字符串'0'

如果传入的参数是负数,需要标识记录,最后在列表里append一个'-' 字符串。

lst = [1, 2, 3],想要翻转,lst = lst[::-1]

示例代码

def my_str(int_value):

"""

将int_value转换成字符串

:param int_value:

:return:

"""

if int_value == 0:

return '0'

lst = []

is_positive = true

if int_value < 0:

is_positive = false

int_value = abs(int_value)

while int_value:

number = int_value

int_value //= 10

str_number = chr(number 48)

lst.append(str_number)

if not is_positive:

lst.append('-')

lst = lst[::-1]

return ''.join(lst)

if __name__ == '__main__':

print(my_str(0))

print(my_str(123))

print(my_str(-123))

3.7 float

题目要求

为了降低难度,本题目只要求你将字符串转换成float类型的数据,且字符串都是符合”xx.xx“格式的字符串,例如"34.22"

def my_float(string):

"""

将字符串string转换成float类型数据

:param string:

:return:

"""

pass

题目分析

使用split函数,以"."做分隔符,可以将字符串分割为两部分,整数部分和小数部分,这两个部分可以分别用3.5 中的my_int 函数进行处理,以"34.22"为例,分别得到整数34 和22,对于22,不停的乘以0.1,知道它的数值小于1,就得到了小数部分

示例代码

str_int_dic = {

'0': 0,

'1': 1,

'2': 2,

'3': 3,

'4': 4,

'5': 5,

'6': 6,

'7': 7,

'8': 8,

'9': 9

}

def my_int(string):

"""

将字符串string转成int类型数据

不考虑string的类型,默认就是符合要求的字符串

传入字符串"432" 返回整数432

:param string:

:return:

"""

res = 0

for item in string:

int_value = str_int_dic[item]

res = res*10 int_value

return res

def my_float(string):

"""

将字符串string转换成float类型数据

:param string:

:return:

"""

arrs = string.split('.')

int_value = my_int(arrs[0])

float_value = my_int(arrs[1])

while float_value > 1:

float_value *= 0.1

return int_value float_value

if __name__ == '__main__':

print(my_float("34.22"))

3.8 len

题目要求

内置函数可以获得可迭代对象的长度,例如字符串,列表,元组,字典,集合。实现一个类似功能的函数,获得数据的长度。

def my_len(obj):

"""

获得obj对象的长度

:param obj:

:return:

"""

pass

思路分析

使用for循环遍历对象,循环的次数就是这个对象的长度,只需要一个变量来保存循环的次数就可以了。

对obj参数的检查,可以使用isinstance判断是否为列表,元组,字典,集合,字符串中的某一个,更为简便的做法,这些对象都是可迭代对象,isinstance(obj, iterable) 可以判断obj是否为可迭代对象

示例代码

from collections import iterable

def my_len(obj):

"""

获得obj对象的长度

:param obj:

:return:

"""

if not isinstance(obj, iterable):

return none

length = 0

for item in obj:

length = 1

return length

if __name__ == '__main__':

print(my_len('232'))

print(my_len([3, 4, 2, 1]))

print(my_len({'a': 4, 'b': 4}))

print(my_len((3, 5, 6, 6, 3)))

print(my_len(set([3, 5, 6, 6, 3])))

3.9 enumerate

题目要求

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中,下面是使用示例

lst = ['a', 'b', 'c']

for index, item in enumerate(lst):

print(index, item)

程序输出

0 a

1 b

2 c

请仿造该功能实现下面的函数

def my_enumerate(lst):

"""

实现和enumerate 类似的功能

:param lst:

:return:

"""

pass

思路分析

想要实现这个函数,只需两行代码就可以了,不过,这需要你对生成器有一定的理解和认识。

一个函数里如果出现了yield关键字,那么这个函数就是生成器函数,该函数返回的是一个生成器。

yield有着和return相似的功能,都会将数据返回给调用者,不同之处在于,return执行后,函数结束了,而yield执行后,会保留当前的状态,等到下一次执行时,恢复之前的状态,继续执行。

在函数内部,使用for循环通过索引

遍历lst, 使用yield返回索引和索引位置上的元素。

示例代码

def my_enumerate(lst):

"""

实现和enumerate 类似的功能

:param lst:

:return:

"""

for i in range(len(lst)):

yield i, lst[i]

lst = ['a', 'b', 'c']

for index, item in my_enumerate(lst):

print(index, item)

3.10 all

题目要求

all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 true,示例代码如下

lst = [true, false, true]

print(all(lst))

最终输出结果是false,实现下面的函数,完成类似的功能

def my_all(seq):

"""

如果列表里所有的元素都是true,则函数返回true,反之,返回false

:param seq: 列表

:return:

"""

pass

为了简化难度,参数seq默认只传列表

思路分析

老规矩,使用for循环遍历列表,当前遍历到的元素如果是false,直接返回false

示例代码

def my_all(seq):

"""

如果列表里所有的元素都是true,则函数返回true,反之,返回false

:param seq: 列表

:return:

"""

for item in seq:

if not item:

return false

return true

if __name__ == '__main__':

print(my_all([true, false, true]))

3.11 any

题目要求

any函数用于判断给定的可迭代参数 iterable 中的所有元素是否至少有一个为true

示例代码

lst = [true, false, false]

print(any(lst))

输出结果为true

实现下面的函数,完成类似的功能,默认传入的参数是列表

def my_any(lst):

"""

列表lst中有一个true,则函数返回true

:param lst:

:return:

"""

pass

思路分析

老规矩,遍历列表,当前遍历到的元素如果为true,则函数返回true

示例代码

def my_any(lst):

"""

列表lst中有一个true,则函数返回true

:param lst:

:return:

"""

for item in lst:

if item:

return true

return false

if __name__ == '__main__':

print(my_any([true, false, false]))

3.12 bin

函数bin可以获得整数的二进制形式,示例代码如下

print(bin(10))

程序输出结果为0b1010。

实现下面的函数,完成相同的功能,为了降低难度,你的算法只需要考虑正整数,而且二进制前面不需要加0b

def my_bin(value):

"""

返回正整数value的二进制形式

:param value:

:return:

"""

思路分析

在算法面试中,有一道题目经常被使用,它要求应聘者计算一个整数的二进制中1的个数。解决的思路是判断二进制最后一位是否为1,如果为1,则计数器加1,判断完成后,整数向右位移一位(使用位运算符 >>) ,继续判断二进制的最后一位是否为1.

本练习题可以采用相同的思路

示例代码

def my_bin(value):

"""

返回正整数value的二进制形式

:param value:

:return:

"""

lst = []

while value:

if value % 2 == 1:

lst.append('1')

else:

lst.append('0')

value = value >>1

lst = lst[::-1]

return ''.join(lst)

print(bin(10))

if __name__ == '__main__':

print(my_bin(3))

print(my_bin(8))

print(my_bin(10))

4. 字符串方法

4.1 find

def my_find(source, target, start=0):

"""

返回字符串source中 子串target开始的位置, 从start索引开始搜索

如果可以找到多个,返回第一个

:param source:

:param target:

:param start:

:return:

"""

if not source or not target:

return -1

# 不合理的搜索起始位置

if start < 0 or start >= len(source):

return -1

if len(target) > len(source):

return -1

for index in range(start, len(source) - len(target) 1):

t_index = 0

while t_index < len(target):

if target[t_index] == source[t_index index]:

t_index = 1

else:

break

if t_index == len(target):

return index

return -1

if __name__ == '__main__':

print(my_find('this is a book', 'this'))

print(my_find('this is a book', 'this', start=1))

print(my_find('this is a book', 'book'))

print(my_find('this is a book', 'k', start=10))

print(my_find('this is a book', 'book', start=10))

print(my_find('this is a book', 'a', start=3))

4.2 replace

def my_replace(source, oldsub, newsub):

"""

将字符串里所有的oldsub子串替换成newsub

:param source:

:param old:

:param new:

:return:

"""

if not source or not oldsub:

return source

new_string = ""

start_index = 0

index = my_find(source, oldsub, start=start_index)

while index != -1:

new_string = source[start_index:index] newsub

start_index = index len(oldsub)

index = my_find(source, oldsub, start=start_index)

new_string = source[start_index:]

return new_string

def my_find(source, target, start=0):

"""

返回字符串source中 子串target开始的位置, 从start索引开始搜索

如果可以找到多个,返回第一个

:param source:

:param target:

:param start:

:return:

"""

if not source or not target:

return -1

# 不合理的搜索起始位置

if start < 0 or start >= len(source):

return -1

if len(target) > len(source):

return -1

for index in range(start, len(source) - len(target) 1):

t_index = 0

while t_index < len(target):

if target[t_index] == source[t_index index]:

t_index = 1

else:

break

if t_index == len(target):

return index

return -1

if __name__ == '__main__':

print(my_replace('this is a book', 'this', 'it'))

print(my_replace('this is a this book', 'this', 'it'))

print(my_replace('this is a this bookthis', 't2his', 'it'))

4.3 split

def my_find(source, target, start=0):

"""

返回字符串source中 子串target开始的位置, 从start索引开始搜索

如果可以找到多个,返回第一个

:param source:

:param target:

:param start:

:return:

"""

if not source or not target:

return -1

# 不合理的搜索起始位置

if start < 0 or start >= len(source):

return -1

if len(target) > len(source):

return -1

for index in range(start, len(source) - len(target) 1):

t_index = 0

while t_index < len(target):

if target[t_index] == source[t_index index]:

t_index = 1

else:

break

if t_index == len(target):

return index

return -1

def my_split(source, sep, maxsplit=-1):

"""

以sep分割字符串source

:param source:

:param sep:

:param maxsplit:

:return:

"""

if not source or not sep:

return []

lst = []

max_split_count = maxsplit if maxsplit >0 else len(source)

split_count = 0

start_index = 0

index = my_find(source, sep, start=start_index)

while split_count < max_split_count and index != -1:

sep_str = source[start_index:index]

lst.append(sep_str)

split_count = 1

start_index = index len(sep)

index = my_find(source, sep, start=start_index)

sep_str = source[start_index:]

lst.append(sep_str)

return lst

if __name__ == '__main__':

print(my_split("1,3,4", ','))

print(my_split("1,,3,,4", ',,'))

print(my_split("abcadae", 'a'))

print(my_split("abcadae", 'a', maxsplit=2))

print(my_split("aaaa", 'a'))

4.4 字符串大写转小写

题目要求

实现函数

def lower(string):

"""

将字符串string里所有的大写字母改成小写字母,并返回一个新的字符串

:param string:

:return:

"""

思路分析

实现大小写转换,首先要能识别出一个字符是否为大写字母,你可以在得到这个字符后,判断其是否在a和z之间,更专业的办法是通过ord 函数获得这个字符的ascii码表的十进制数值,判断其是否在65和90之间。

获得字符的ascii码表的十进制数值,其目的不仅仅是判断它是否为大写字母,第二个目的是通过这个十进制数值与32相加,来获得大写字母所对应的小写字母的十进制数值,这样,才能准确的转换成小写字母。

我在程序里使用list函数将字符串转成列表,之所以这样做,是因为字符串是不可变类型的数据,无法直接修改,只好先将其转成列表,将列表里的大写字母转成小写字母,再将列表转成字符串。

示例代码

def lower(string):

"""

将字符串string里所有的大写字母改成小写字母,并返回一个新的字符串

:param string:

:return:

"""

if not string:

return none

lst = list(string)

for index, item in enumerate(lst):

ascii_index = ord(item)

if 65 <= ascii_index <= 90:

s = chr(ascii_index 32)

lst[index] = s

return ''.join(lst)

if __name__ == '__main__':

print(lower('232rsfd'))

4.5 判断字符串是否全部为小写字母

题目要求

实现函数

def islower(string):

"""

如果字符串string 里所有区分大小写的字符都是小写,则返回true

:param string:

:return:

"""

pass

比如传入字符串 "iwj32as",函数应该返回true

思路分析

字符串里,常见的只有26个英文字母是区分大小写的,因为,咱们只关心英文字母即可。

遍历字符串,逐个字符进行检查,获得其ascii码表里的十进制数值,如果该数值在65到90之间,一定是大写字母,此时返回false,如果for循环结束后,仍然没有返回false,那么就说明,字符串里没有大写字母,可以返回true

示例代码

def islower(string):

"""

如果字符串string 里所有区分大小写的字符都是小写,则返回true

:param string:

:return:

"""

if not string:

return false

for item in string:

if 65 <= ord(item) <= 90:

return false

return true

if __name__ == '__main__':

print(islower('232r'))

4.6 实现isdigit

题目要求

实现函数isdigit, 判断字符串里是否只包含数字0~9

def isdigit(string):

"""

判断字符串只包含数字

:param string:

:return:

"""

pass

思路分析

遍历字符串,对每个字符做检查,如果都是0到9的某个数值,那么函数返回true,只要有一个不是0到9,就返回false。

如何确定一个字符是不是0到9中的某一个呢,方法很多,你可以用if条件判断语句判断字符是否在列表['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']中,也可以像我下面示例代码一样,使用ord函数获得字符的ascii编码对应的10进制数值,接着判断是否在48到57之间。

示例代码

def isdigit(string):

"""

判断字符串只包含数字

:param string:

:return:

"""

if not string:

return false

for item in string:

if not (48 <= ord(item) <= 57):

return false

return true

if __name__ == '__main__':

print(isdigit('232'))

print(isdigit('232r'))

print(isdigit(''))

4.7 startswith

题目要求

实现函数is_startswith,如果字符串source是以substr开头的,则函数返回true,反之返回false

def is_startswith(source, substr):

"""

判断字符串source是否以substr开头

:param source:

:param substr:

:return:

"""

pass

思路分析

函数首先要判断传入的参数是否合法,这里默认传入的都是字符串,那么我们要需要判断字符串是否有空串的情况

如果substr的长度大于source的长度,直接返回false

从索引0开始,遍历substr,从source上获得相同索引的字符,两者进行比较,只要有一个字符不相同,则可以立即返回false

示例代码

def is_startswith(source, substr):

"""

判断字符串source是否以substr开头

:param source:

:param substr:

:return:

"""

if not source or not substr:

return false

if len(substr) > len(source):

return false

for index, item in enumerate(substr):

if item != source[index]:

break

else:

return true # 如果for循环不是因为break结束的,就会进入到else语句块

return false

if __name__ == '__main__':

print(is_startswith("python", 'py'))

4.8 endswith

题目要求

实现函数is_endswith,判断字符串source是否以substr结尾

def is_endswith(source, substr):

"""

判断字符串source 是否以substr结尾

:param source:

:param substr:

:return:

"""

pass

思路分析

这个练习题的解法其实和is_startswith函数相差无几,所不同的是,在is_startswith函数中,要从索引0开始进行相同位置字符的比较,而现在,是要判断是否以substr结尾,所以我们从索引len(source) - len(substr)开始逐一进行比较

示例代码

def is_endswith(source, substr):

"""

判断字符串source 是否以substr结尾

:param source:

:param substr:

:return:

"""

if not source or not substr:

return false

if len(substr) > len(source):

return false

start_index = len(source) - len(substr)

for index in range(start_index, len(source)):

if source[index] != substr[index-start_index]:

break

else:

return true

return false

if __name__ == '__main__':

print(is_endswith("python", 'thon'))

4.9 实现字符串capitalize方法

题目要求

capitalize方法将字符串的第一个字母转成大写,其他字母转成小写,请实现函数my_capitalize,完成同样的功能

def my_capitalize(string):

pass

思路分析

遍历字符串,如果首字母是小写,则转成大写,其余索引上的字母如果是大写,则转成小写

大小写转换的方法,可以参考lower函数的实现

示例代码

def my_capitalize(string):

if not string:

return string

lst = []

for index, item in enumerate(string):

ascii_index = ord(item)

if index == 0:

if 97 <= ascii_index <= 122:

item = chr(ascii_index-32)

else:

if 65 <= ascii_index <= 90:

item = chr(ascii_index 32)

lst.append(item)

return "".join(lst)

print(my_capitalize('this is a book'))

4.10 实现字符串count方法

题目要求

字符串count方法,可以返回指定范围内的子串的数量,下面是用法示例

source = "this is a book"

target = 'is'

print(source.count(target))

程序输出2

请仿照字符串的count方法,实现下面的函数

def my_count(source, target, start, end):

"""

函数返回字符串source在start 和 end之前,子串target 的数量, 索引范围左闭右开

:param source:

:param target:

:param start:

:param end:

:return:

"""

pass

思路分析

对于传入的参数进行合法性判断,是编写函数时必须要考虑的事情

字符串source,target为空判断

start >= end判断

start范围判断,不能小于0,也不能大于等于len(source)

如果end大于len(source),则重新对end赋值,让其等于len(source),算是一种合理的补救

经过前面的4个判断后,基本上可以保证传入的参数是合法的,不至于因为参数不合法导致程序出错

具体实现思路,将字符串target索引0与字符串source索引start进行对齐,然后逐个字符比较,只要有一个不相同,就说明,source[start: len(target)] != target,那么就需要向右移动一位,比较source[start 1: len(target)]是否与target相等。

代码里最精髓的是if t_index == len(target)这行,如果对比过程中,触发了break,那么t_index一定不会与len(target)相等,就依靠这个条件判断,就可以知道是不是找到了子串。

示例代码

def my_count(source, target, start, end):

"""

函数返回字符串source在start 和 end之前,子串target 的数量, 索引范围左闭右开

:param source:

:param target:

:param start:

:param end:

:return:

"""

if not source or not target:

return 0

if start >= end:

return 0

if start >= len(source) or start < 0:

return 0

count = 0

if end > len(source):

end = len(source)

index = start

while index < end:

t_index = 0

while t_index < len(target) and index len(target) <= end:

if target[t_index] != source[index t_index]:

break

t_index = 1

if t_index == len(target):

index = len(target)

count = 1

else:

index = 1

return count

source = "this is a book"

target = 'is'

print(my_count(source, target, 0, len(source)))

5. 排序算法篇

排序算法最能体现一个程序员的算法功底,也是面试时经常被拿来考察候选者的题目,本篇章一共讲解8种排序算法。

5.1 冒泡排序

冒泡排序的核心思想是相邻的两个数据进行比较,假设数列a有n个数据,先比较第1个和第2个数据,如果a1 > a2,则交换他们的位置,确保较大的那个数在右侧。

接下来比较a2和a3,采用相同的规则,较大的数向右移动,最后会比较an-1 和an的大小,如果an-1 > an,那么交换他们的位置,这时,an是数列中的最大值。

你肯定已经发现,经过这一轮比较后,数列仍然是无序的,但是没有关系,我们已经找到了最大值an,而且它在队列的末尾。

接下来要做的事情,就是简单的重复之前的过程,整个数列,先暂时把an排除在外,这n-1个无序的数,仍然可以采用之前的方法,找出n-1个数当中的最大值,这样an-1就是第2大的数,继续对n-2个数做相同的事情

为了让你更容易理解冒泡排序,我们先实现一个简单的函数

def move_max(lst, max_index):

"""

将索引0到max_index这个范围内的最大值移动到max_index位置上

:param lst:

:param max_index:

:return:

"""

for i in range(max_index):

if lst[i] > lst[i 1]:

lst[i], lst[i 1] = lst[i 1], lst[i]

if __name__ == '__main__':

lst = [7, 1, 4, 2, 3, 6]

move_max(lst, len(lst)-1)

print(lst)

这个函数只完成一个简单的功能,它将列表从索引0到max_index之间的最大值移动max_index索引上,这正是冒泡排序的核心思想。

当我们完成这一步,剩下的事情,就是不断的重复这个过程。

def pop_sort(lst):

for i in range(len(lst)-1, 1, -1):

move_max(lst, i)

def move_max(lst, max_index):

"""

将索引0到max_index这个范围内的最大值移动到max_index位置上

:param lst:

:param max_index:

:return:

"""

for i in range(max_index):

if lst[i] > lst[i 1]:

lst[i], lst[i 1] = lst[i 1], lst[i]

if __name__ == '__main__':

lst = [7, 1, 4, 2, 3, 6]

pop_sort(lst)

print(lst)

5.2 快速排序

快速排序的思路可以归结为3个步骤

从待排序数组中随意选中一个数值,作为基准值

移动待排序数组中的元素,是的基准值左侧的数值都小于等于它,右侧的数值大于等于它

基准值将原来的数组分为两部分,针对这两部分,重复步骤1,2, 3

通过分析,可以确定,必然要使用递归算法,遇到递归不要害怕,先把1,2两步分区实现,最后实现第3步的递归

先实现分区

def partition(lst,start,end):

"""

用lst[start] 做基准值,在start到end这个范围进行分区

"""

pivot = lst[start]

while start < end :

while start < end and lst[end] >= pivot:

end -= 1

lst[start] = lst[end]

while start < end and lst[start] <= pivot:

start = 1

lst[end] = lst[start]

lst[start] = pivot

return start

partition函数返回基准值最后的索引,知道这个索引,才能将之前的待排序数组分为两部分,下面是递归部分的实现

def my_quick_sort(lst,start,end):

if start>= end:

return

index = partition(lst,start,end)

my_quick_sort(lst,start,index-1)

my_quick_sort(lst,index 1,end)

虽然这两段代码里的逻辑,你还有些不清楚,但整个的分析过程应该说是比较清晰的,先实现分区,然后实现递归,在编写算法时,很忌讳大包大揽的考虑问题,不分层次,不分先后,不分轻重。

分区虽然没有让整个数组变得有序,但是让基准值找到了自己应该在的位置,对左右两侧重复分区动作,每一次分区动作都至少让一个元素找到自己应该在的位置。

验证代码

if __name__ == '__main__':

lst = [4,3,2,4,1,5,7,2]

my_quick_sort(lst,0,len(lst)-1)

print lst

5.3 希尔排序

算法定义

希尔排序,又称缩小增量排序,不要被这个名字吓到,其实,它只是对插入算法的改进而已。

当待排序列基本有序的情况下,插入算法的效率非常高,那么希尔排序就是利用这个特点对插入算法进行了改造升级

分组

待排序数组为

4,1,67,34,12,35,14,8,6,19

第一轮希尔排序

希尔排序的关键在于对待排序列进行分组,这个分组并不是真的对序列进行了拆分,而仅仅是虚拟的分组

首先,用10/2 = 5, 这里的5就是缩小增量排序中的那个“增量”。从第0个元素开始,每个元素都与自己距离为5的元素分为一组,那么这样一来分组情况就是

4 35

1 14

67 8

34 6

12 19

需要注意的是,所谓的分组,仅仅是逻辑上的分组,这10个元素仍然在原来的序列中。上面一共分了5组,每一组都进行插入排序,67 和 8 交换位置,34 和6 交换位置,这样第一次分组后并对各组进行插入排序后,序列变成了

4, 1, 8, 6, 12, 35, 14, 67, 34, 19

第二轮希尔排序

上一轮排序时,增量为5,那么这一轮增量为5/2 = 2,这就意味着,从第0个元素开始,每个元素都与自己距离为2的元素分为一组,分组情况如下

4 8 12 14 34

1 6 35 67 19

整个序列被分成了两组,分别对他们进行插入排序,排序后的结果为

4, 1, 8, 6, 12, 19, 14, 35, 34, 67

第三轮希尔排序

上一轮排序时,增量为2,这一轮增量为2 /2 = 1,当增量为1的时候,其实就只能分出一个组了,这样,就完全的退化成插入排序了,但是,由于已经进行了两轮希尔排序,使得序列已经基本有序了,那么此时进行插入排序,效果就会非常好

增量从5变为2,从2变为1,是逐渐减小的过程,增量是分组时所使用的步长。

示例代码

有了前面的概念以及算法的理解,写出代码就变得容易了,先分组,然后进行插入排序,你唯一要注意的地方是进行插入排序时,要弄清楚,哪些元素是一组的

lst = [4,1,67,34,12,35,14,8,6,19]

length = len(lst)

step = length//2

while step > 0:

for i in range(step):

# 插入排序

for j in range(i step, length, step):

if lst[j] < lst[j-step]:

tmp = lst[j]

k = j-step

while k >= 0 and lst[k] > tmp:

lst[k step] = lst[k]

k -= step

lst[k step] = tmp

step //= 2 #缩小增量

print lst

5.4 归并排序

合并两个有序集合

有两个有序的序列,分别为 [1,4,7] ,[2,3,5],现在请考虑将这两个序列合并成一个有序的序列。

其实方法真的非常简单

首先创建一个新的序列,分别从两个序列中取出第一个数,1和2,1比2小,把1放到新的序列中

第一个序列中的1已经放到新序列中,那么拿出4来进行比较,2比4小,把2放到新的序列中

第二个序列中的2已经放到新序列中,那么拿出3来进行比较,3比4小,把3放到新的序列中

第二个序列中的3已经放到新序列中,那么拿出5来进行比较,4比5小,把4放到新的序列中

第一个序列中的4已经放到新序列中,那么拿出7来进行比较,5比7小,把5放到新的序列中

最后把7放入到新的序列中

合并的方法就是分别从两个序列中拿出一个数来进行比较,小的那一个放到新序列中,然后,从这个小的数所属的序列中拿出一个数来继续比较

示例代码

def merge_lst(left_lst,right_lst):

left_index, right_index = 0, 0

res_lst = []

while left_index < len(left_lst) and right_index < len(right_lst):

# 小的放入到res_lst中

if left_lst[left_index] < right_lst[right_index]:

res_lst.append(left_lst[left_index])

left_index = 1

else:

res_lst.append(right_lst[right_index])

right_index = 1

# 循环结束时,必然有一个序列已经都放到新序列里,另一个却没有

if left_index == len(left_lst):

res_lst.extend(right_lst[right_index:])

else:

res_lst.extend(left_lst[left_index:])

return res_lst

5.5 归并排序

归并排序,利用了合并有序序列的思想,把一个序列分成a,b两个序列,如果这两个序列是有序的,那么直接合并他们不就可以了么,但是a,b两个序列未必是有序的,没关系,就拿a序列来说,我把a序列再分一次,分成a1,a2,如果a1,a2有序我直接对他们进行合并,a不就变得有序了么,但是a1,a2未必有序啊,没关系,我继续分,直到分出来的序列里只有一个元素的时候,一个元素,就是一个有序的序列啊,这个时候不就可以合并了

这样一层一层的分组,分到最后,一个组里只有一个元素,终于符合合并的条件了,再一层一层的向上合并

完成示例代码:

def merge_lst(left_lst,right_lst):

left_index, right_index = 0, 0

res_lst = []

while left_index < len(left_lst) and right_index < len(right_lst):

# 小的放入到res_lst中

if left_lst[left_index] < right_lst[right_index]:

res_lst.append(left_lst[left_index])

left_index = 1

else:

res_lst.append(right_lst[right_index])

right_index = 1

# 循环结束时,必然有一个序列已经都放到新序列里,另一个却没有

if left_index == len(left_lst):

res_lst.extend(right_lst[right_index:])

else:

res_lst.extend(left_lst[left_index:])

return res_lst

def merge_sort(lst):

if len(lst) <= 1:

return lst

middle = len(lst)//2

left_lst = merge_sort(lst[:middle])

right_lst = merge_sort(lst[middle:])

return merge_lst(left_lst, right_lst)

if __name__ == '__main__':

lst = [19,4,2,8,3,167,174,34]

print merge_sort(lst)

5.6 选择排序

假设有一个序列,a[0],a[1],a[2]...a[n]现在,对它进行排序。我们先从0这个位置到n这个位置找出最小值,然后将这个最小值与a[0]交换,然后呢,a[1]到a[n]就是我们接下来要排序的序列

我们可以从1这个位置到n这个位置找出最小值,然后将这个最小值与a[1]交换,之后,a[2]到a[n]就是我们接下来要排序的序列

每一次,我们都从序列中找出一个最小值,然后把它与序列的第一个元素交换位置,这样下去,待排序的元素就会越来越少,直到最后一个

示例代码

def select_sort(lst):

for i in range(len(lst)):

min = i

for j in range(min,len(lst)):

# 寻找min 到len(lst)-1 这个范围内的最小值

if lst[min] > lst[j]:

min = j

lst[i], lst[min] = lst[min], lst[i]

lst = [2,6,1,8,2,4,9]

select_sort(lst)

print lst

5.7 堆排序

堆的概念

堆是一种数据结构,分最大堆和最小堆,最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。

我们用list来描述它

lst = [9, 6, 8, 3, 1, 4, 2]

你看不出这个lst有什么特别,别着急,再介绍两个概念给你

父节点,子节点

列表中的每一个元素都是一个节点,以lst[0] 为例,他的子节点分别是lst[1],lst[2],同时我们也说lst[1]的父节点是lst[0]

我们可以计算每一个节点的子节点,假设当前节点的序号是i,那么它的左子节点则是 i2 1,右子节点则是i2 2

最大堆,最小堆

所谓最大堆就是指每一个节点的值都比它的子节点的值大,最小堆就是指每一个节点的值都比它的子节点的值小

现在,我们再来看上面给出的列表

lst[0] = 9,它的子节点分别是lst[1]=6,lst[2]=8

lst[1] = 6,它的子节点分别是lst[3]=3,lst[4]=1

lst[2] = 8,它的子节点分别是lst[5]=4,lst[6]=2

lst[3] = 3,它的子节点分贝是lst[7]和lst[8],但这两个节点是不存在的

后面的也就不用再看了,这个列表符合最大堆的要求,父节点的值大于两个子节点的值,而且最重要的一点,堆中任意一颗子树仍然是堆

如何建立一个堆

关于堆的应用,非常多,比如堆排序,在应用之前,我们必须先建立一个堆,刚才给出的列表,恰好是一个堆,如果不是堆呢,我们需要将其变成堆,例如下面这个列表

lst = [3, 9, 2, 6, 1, 4, 8]

这个列表里的元素和上一个列表里的元素是一样的,只是顺序不同,建立堆的过程,就是调整顺序的过程,使其满足堆的定义

不是所有节点都有子节点

如果当前节点的位置是i,那么子节点的位置是i2 1 和 i2 2 ,因此,不是所有节点都有子节点,假设一个堆的长度为n,那么n/2 - 1 及以前的节点都是有子节点的,这是一个非常简单的算数题,你稍微用脑就能理解。

那么建立堆的过程,就是从n/2 - 1 到0 逐渐调整的过程,如何调整呢?

每个节点都和自己的两个子节点中最大的那个节点交换位置就可以了,这样,节点值较大的那个就会不停的向上调整

示例代码

def adjust_heap(lst, i, size):

lchild = 2 * i 1 # 计算两个子节点的位置

rchild = 2 * i 2

max = i

if i < size // 2:

if lchild < size and lst[lchild] > lst[max]:

max = lchild

if rchild < size and lst[rchild] > lst[max]:

max = rchild

# 如果max != i成立,那么就说明,子节点比父节点大,要交换位置

if max != i:

lst[max], lst[i] = lst[i], lst[max]

# 向下继续调整,确保子树也符合堆的定义

adjust_heap(lst, max, size)

def build_heap(lst):

for i in range((len(lst)//2)-1, -1, -1):

adjust_heap(lst, i, len(lst))

print lst # 此处输出,可以观察效果

lst = [3,9,2,6,1,4,8]

build_heap(lst)

print lst

最大堆,最小堆

关于最大堆,最小堆,我们只要掌握一点就好了,对于最大堆,堆定的元素一定是整个堆里最大的,但是,如果我们去观察,整个堆并不呈现有序的特性,比如前面建立的堆

[9, 6, 8, 3, 1, 4, 2]

堆顶元素为9,是最大值,但是从0到最后一个元素,并不是有序的

堆排序的思路

lst = [9, 6, 8, 3, 1, 4, 2]

(1)将lst[0] 与 lst[6]交换,交换后为[2, 8, 6, 4, 3, 1, 9],现在,这个堆已经被破坏掉了

(2)那么我们可以利用adjust_heap函数重新把它调整成一个堆,adjust_heap(lst,0,6),这样调整后,lst=[8, 6, 4, 3, 1, 2, 9]

注意看lst[0]到lst[5],这个范围内的数据被调整成了一个堆,使得lst[0]也就是8是这个范围内的最大值

我们只需要重复刚才的两个步骤,就可以将堆的大小逐步缩小,同时,从后向前让整个lst变得有序

示例代码

def adjust_heap(lst, i, size):

lchild = 2 * i 1 # 计算两个子节点的位置

rchild = 2 * i 2

max = i

if i < size // 2:

if lchild < size and lst[lchild] > lst[max]:

max = lchild

if rchild < size and lst[rchild] > lst[max]:

max = rchild

# 如果max != i成立,那么就说明,子节点比父节点大,要交换位置

if max != i:

lst[max], lst[i] = lst[i], lst[max]

# 向下继续调整,确保子树也符合堆的定义

adjust_heap(lst, max, size)

def build_heap(lst):

for i in range((len(lst)//2)-1, -1, -1):

adjust_heap(lst, i, len(lst))

print lst # 此处输出,可以观察效果

lst = [3,9,2,6,1,4,8]

def heap_sort(lst):

size = len(lst)

# 建立一个堆,此时lst[0]一定是最大值

build_heap(lst)

print '*'*20

for i in range(size-1, -1, -1):

# 将lst[0] 与lst[i] 交换,这样大的数值就按顺序排到了后面

lst[0], lst[i] = lst[i], lst[0]

# 交换后,重新将0到i这个范围内的数据调整成堆,这样lst[0]还是最大值

adjust_heap(lst, 0, i)

print lst,i # 此处输出可以查看效果

heap_sort(lst)

print '*'*20

print lst

5.8 插入排序

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

咱们举一个例子,你就能明白插入排序的精髓所在

lst = [1, 2, 6, 7, 5]

lst是一个待排序的列表,你仔细观察不难发现,这个列表里的前4个数据已经是有序的了,现在,只需要把最后一个元素5插入到一个合适的位置就可以了。

从7开始向左遍历,比5大的数向右移动,当遇到一个小于等于5的数就停下来,这个位置就是5应该在的位置。当7向右移动时,占据了5的位置,因此,程序里需要一个变量把5保存下来,还需要一个变量把向左遍历时的索引记录下来,最后这个索引就是5应该在的位置。

def insert(lst, index):

"""

列表lst从索引0到索引index-1 都是有序的

函数将索引index位置上的元素插入到前面的一个合适的位置

:param lst:

:param index:

:return:

"""

if lst[index-1] < lst[index]:

return

tmp = lst[index]

tmp_index = index

while tmp_index > 0 and lst[tmp_index-1] > tmp:

lst[tmp_index] = lst[tmp_index-1]

tmp_index -= 1

lst[tmp_index] = tmp

if __name__ == '__main__':

lst = [1, 2, 6, 7, 5]

insert(lst, 4)

print(lst)

函数默认列表lst从0到index-1都是有序的,现在只需要将索引index位置上的数据插入到合适的位置就可以了。

你可能已经产生了疑惑,咱们是要排序啊,你这函数默认前面index-1个数据都是有序的,这不合理啊,前面index-1个数据如果是无序的,你怎么办呢?

看下面的代码,你就全明白了

def insert(lst, index):

"""

列表lst从索引0到索引index-1 都是有序的

函数将索引index位置上的元素插入到前面的一个合适的位置

:param lst:

:param index:

:return:

"""

if lst[index-1] < lst[index]:

return

tmp = lst[index]

tmp_index = index

while tmp_index > 0 and lst[tmp_index-1] > tmp:

lst[tmp_index] = lst[tmp_index-1]

tmp_index -= 1

lst[tmp_index] = tmp

def insert_sort(lst):

for i in range(1, len(lst)):

insert(lst, i)

if __name__ == '__main__':

lst = [1, 6, 2, 7, 5]

insert_sort(lst)

print(lst)

第1个元素单独看做一个数列,它本身就是有序的,那么只需要执行insert(lst, 1),就可以保证前两个数据变成有序的,然后执行insert(lst, 2),此时,从索引0到索引1是有需的,只需要将索引为2的数据插入到合适的位置就可以了。

6. 简单算法篇

6.1 打印杨辉三角

题目要求

给定一个正整数n,打印杨辉三角的前n行

杨辉三角形态如下

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

杨辉三角的每一行第一个和最后一个元素都是1

中间的元素,由上一行的两个元素相加得到,第n行的第index元素

是由第n-1 行的第index-1元素和第index相加得到的

思路分析

杨辉三角的每一行的第一个元素和最后也元素都是1

中间的元素可以由上一行的元素两两相加得到

第n行元素,可以由第n-1 行变化而来,这正是递归算法的精髓,把新的问题转化成老的问题,而老的问题转化成更老的问题,最终必然有一个老问题给出答案,然后整个逻辑链条上的问题都有了答案

代码示例

def print_yanghui(n):

"""

递归算法打印杨辉三角

:param n:

:return:

"""

if n == 1:

print([1])

return [1]

elif n == 2:

print_yanghui(1)

print([1, 1])

return [1, 1] # 这里如果不返回,第三行就无法生成

else:

lst = [1] # 第一个元素

pre_lst = print_yanghui(n - 1) # 得到上一行的元素

# 根据第n -1 行的元素,生成第n行的中间元素

for i in range(len(pre_lst) -1):

lst.append(pre_lst[i] pre_lst[i 1])

lst.append(1) # 最后一个元素

print(lst)

return lst

if __name__ == '__main__':

print_yanghui(6)

6.2 计算三角形的周长和面积

题目要求

写一段程序,让用户输入三角形的三条边长,如果三条边长不能构成三角形,则提示用户重新输入

如果可以构成三角形,则计算周长和面积

思路分析

对于用户的输入,首先要约定格式,这里简单的约定为每个边长之间用空格间隔

在获得用户的输入以后,要对输入进行检查,有两点需要检查

(1) 检查是不是输入了三条边的边长,输入2个或者4个都是错误的

(2) 检查输入的内容是不是数值型,如果输入的是字母,那根本驴唇不对马嘴

以上两点是编程时要考虑的,经过上面的分析你应该有所体会,编程,并不是你掌握一门语言然后用它在计算机上做各种操作

编程,是对问题的思考,我这里约定让用户一次性输入三条边的边长,中间用空格隔开,你也可以让用户输入三次,也可以让用户输入一次但用别的字符做间隔,这些都是没有定论的,完全取决于你的思考

对于输入内容检查,你可能会以为python会自己完成,但其实不会,input获得的就是字符串,你必须理解什么是字符串,必须清楚的知道input的作用,这些都是最最基础的内容,如果你不掌握这些,那你就无法思考

根本不存在一种方法或者操作可以满足你的要求,可以解决实际的问题,编程就是分析问题然后你自己解决问题的过程

def get_edge(line):

"""

根据用户的输入获得三条边

用户输入三条边的长度,用空格隔开 类似于 3 4 5

:param line:

:return:

"""

edge_lst = line.split(" ")

# 如果输入条数不是3

if len(edge_lst) != 3:

return false, (0, 0, 0)

try:

# raw_input 获得用户的输入,得到的是字符串,这里把字符串转成float数值

edge_lst = [float(item) for item in edge_lst]

except:

return false, (0, 0, 0)

return true, (edge_lst[0], edge_lst[1], edge_lst[2])

def is_able_triangle(a, b, c):

"""

判断能否构成三角形

:param a:

:param b:

:param c:

:return:

"""

return (a b > c) and (a c > b) and (c b > a)

def triangle_func():

while true:

line = input('输入三角形的三个边长,用空格隔开,退出请输入q:')

if line == 'q':

break

input_correct, edges = get_edge(line)

if not input_correct:

print('输入错误')

continue

if not is_able_triangle(edges[0], edges[1], edges[2]):

print('不能构成三角形')

continue

perimeter = sum(edges)

half_perimeter = perimeter//2

area = (half_perimeter*(half_perimeter-edges[0])*(half_perimeter-edges[1])*(half_perimeter-edges[2])) ** 0.5

print('周长: {perimeter} 面积:{area}'.format(perimeter=perimeter, area=area))

if __name__ == '__main__':

triangle_func()

6.3 忽略大小比较字符串是否相等

题目要求

比较两个字符串,忽略大小写,比如字符串"abc"和字符串"abc",在忽略大小写的情况下是相等的,实现函数

def is_same_ignore_case(str1, str2):

"""

忽略大小写比较两个字符串是否相等

:param str1:

:param str2:

:return:

"""

pass

要求,不能使用字符串的lower方法和upper方法

思路分析

题目要求不能使用字符串的lower方法和upper方法,之所以这样要求,是希望你能从更基础的编程做起,培养更深入的思考。

要解这个练习题,你需要对ascii码表有一定的了解,在ascii码表中,大小写字母的十进制编码相差32。

通过for循环,遍历str1,同时获取与之相对应索引上的字母,因为要忽略大小写,因此,将他们都转换成ascii码表里的十进制数值,并且统一转成小写字母的十进制数值。

在进行正式比较前,严谨的判断逻辑应该是先判断传入的参数str1和str2是否有效,然后判断这两个字符串的长度是否相等,这些都是从程序的健壮性和效率上考虑的。

enumerate函数是一个非常方便且有用的函数,在for循环中,既能获得遍历的元素,又能获得该元素的索引。

示例代码

def get_ord_value(string):

value = ord(string)

if 65 <= value <= 90:

value = 32

return value

def is_same_ignore_case(str1, str2):

"""

忽略大小写比较两个字符串是否相等

:param str1:

:param str2:

:return:

"""

if not isinstance(str1, str) or not isinstance(str2, str):

return false

if len(str1) != len(str2):

return false

# 统一转成小写

for index, item in enumerate(str1):

value1 = get_ord_value(item)

value2 = get_ord_value(str2[index])

if value1 != value2:

return false

return true

if __name__ == '__main__':

print(is_same_ignore_case('abc', 'abc'))

print(is_same_ignore_case('abc', 'abd'))

6.4 寻找数组最大值和最小值

题目要求

只遍历一遍,寻找出数组中的最大值和最小值,实现函数

def find_max_min(lst):

pass

思路分析

如果只是要去你使用for循环找出列表里的最大值或者最小值,是一件非常简单的事情。题目要求实现函数find_max_min,找出列表的最大值和最小值,首先你要明白,python中,函数可以有多个返回值。

在for循环中,使用两个if条件语句,分别寻找最大值和最小值就可以了。

实例代码

def find_max_min(lst):

if not lst or not isinstance(lst, list):

return none, none

max_value, min_value = lst[0], lst[0]

for item in lst:

if item > max_value:

max_value = item

if item < min_value:

min_value = item

return max_value, min_value

if __name__ == '__main__':

lst = [43, 1, 12, 435, 456, 13]

max_value, min_value = find_max_min(lst)

print(max_value, min_value)

6.5 先递增后递减数组最大值

题目要求

一个数组先递增后递减,要求找到最大值,数组示例

lst = [1, 3, 6, 8, 5, 3, 2]

思路分析

既然是先递增,后递减,这样的数组至少应该有3个元素,才能符合这样的描述,而且,最大值一定不是首元素或者末尾元素。

从索引0开始遍历数组,如果下一个元素小于当前元素,那么当前这个元素一定是数组中最大的那个数据

示例代码

def find_max(lst):

if not lst or not isinstance(lst, list):

return none

for index, item in enumerate(lst):

if item > lst[index 1]:

return item

if __name__ == '__main__':

lst = [1, 3, 6, 8, 5, 3, 2]

max_value = find_max(lst)

print(max_value)

拓展

上面的算法并不是最高效的,鉴于其有序性,也可以使用二分法进行查找,对于初学者稍微有些困难,感兴趣的朋友可以自己去探索。

6.6 生成矩阵

题目要求

已知两个列表

lst_1 = [1, 2, 3, 4]

lst_2 = ['a', 'b', 'c', 'd']

请写算法,将两个列表交叉相乘,生成如下的矩阵

[['1a', '2a', '3a', '4a'],

['1b', '2b', '3b', '4b'],

['1c', '2c', '3c', '4c'],

['1d', '2d', '3d', '4d']]

思路分析

观察生成的矩阵,可以得出这样的结论,lst_1的长度决定了矩阵有多少列,lst_2的长度决定了生成的矩阵有多少行。

既然是交叉相乘,那么可以写两个for循环,嵌套遍历这两个列表,对lst_2的遍历放在外层,对lst_1的遍历放在内层。

示例代码

import pprint

lst_1 = [1, 2, 3, 4]

lst_2 = ['a', 'b', 'c', 'd']

lst = []

for item2 in lst_2:

tmp = []

for item1 in lst_1:

tmp.append(str(item1) item2)

lst.append(tmp)

pprint.pprint(lst)

6.7 矩阵对角线元素和

题目要求

求一个3*3矩阵中对角线上元素之和

先模拟一个3*3矩阵

3 5 6

4 7 8

2 4 9

思路分析

在c语言里,这种数据要用二维数组来存储,在python里,没有二维数组这个专业用语,概念上,你可以理解为嵌套列表,其定义如下

lst = [

[3,5,6],

[4,7,8],

[2,4,9]

]

lst中有3个元素,均是列表,lst[0]是一个列表,该列表里有3个元素。

题目要求计算对角线元素和,也就是lst[0][0] lst[1][1] lst[2][2],写一个for循环,用range(3)产生一个从0到2的序列,即可实现这三个元素的相加

实例代码

lst = [

[3,5,6],

[4,7,8],

[2,4,9]

]

sum = 0

for i in range(3):

sum = lst[i][i]

print sum

6.8 输出今天的信息

按照下面的格式,输出今天的时间信息

今天是2019年4月18日,星期四,今年的第108天,这一年29.59%的时间已流逝

思路分析

对日期的操作,使用datetime模块

today = datetime.datetime.now()

today存储了今天的日期信息,包括年月日,时分秒。

today.isoweekday() 返回的是数字1到7,对应周一到周日。

计算距离今年第一天的天数方法如下

days = int(today.strftime('%j'))

计算时间流逝的百分比,需要计算出今年一共有多少天,如果是闰年,是366天,本练习题并不复杂,考察你对datetime模块的熟练程度

示例代码

import datetime

out_put_str = "今天是{date_str},{weekday},今年的第{days}天,这一年{pass_ratio}%的时间已流逝"

year_days = 365 # 一年有365天

today = datetime.datetime.now()

date_str = '{year}年{month}月{day}日'.format(year=today.year, month=today.month, day=today.day)

year = today.year

# 判断是否为闰年,闰年的条件: 能被100乘除时,如果可以被400乘除,那么是闰年,不能被100乘除,能被4整除是闰年

b_runnian = false

if year % 100 == 0:

if year % 400 == 0:

b_runnian = true

elif year % 4 == 0:

b_runnian = true

if b_runnian:

year_days = 366

# 今年的第几天

days = int(today.strftime('%j'))

# 数字星期与中文星期的映射关系

week_map = {

1: '星期一',

2: '星期二',

3: '星期三',

4: '星期四',

5: '星期五',

6: '星期六',

7: '星期日',

}

# 星期几

week_day = week_map[today.isoweekday()]

# 已经过去了多少

pass_ratio = round((days / year_days)*100, 2)

out_put = out_put_str.format(date_str=date_str, weekday=week_day, days=days, pass_ratio=pass_ratio)

print(out_put)

6.9 可变对象与不可变对象考察

下面的题目,要求你在不执行程序的情况下说出程序的执行结果,然后,执行程序,将程序输出结果与自己的理解进行对比

6.9.1 不可变对象考察

lst = [1, 2, 3, 4, 5]

for item in lst:

item = 0

print(lst)

上面的代码输出结果是

a. [1, 2, 3, 4, 5]

b. [0, 0, 0, 0, 0]

答案是 a, 在遍历过程中,item的数据类型是int,是不可变对象,item = 0仅仅是重新对item变量进行赋值,改变的是item变量的指向,并没有改变列表内容

6.9.2 可变对象考察

lst = [[1, 2, 3, 4], [5, 6, 7, 8]]

for item in lst:

item.append(0)

print(lst)

请写出上面程序的输出结果

答案是

[[1, 2, 3, 4, 0], [5, 6, 7, 8, 0]]

遍历过程中,item的数据类型是列表,列表是可变对象,item.append(0) 这个操作,没有改变item变量的指向,而是修改了它所指向的列表里的内容

6.9.3 不可变对象考察

my_dic = {

'class1': 90,

'class2': 95,

'class3': 100

}

for key, value in my_dic.items():

value = 100

print(my_dic)

请输出上面程序的输出结果

答案是my_dic不发生任何变化,原理与6.9.1相同

6.9.4 可变对象考察

my_dic = {

'class1': [1,2],

'class2': [3,4],

'class3': [5,6]

}

for key, value in my_dic.items():

value.append(0)

print(my_dic)

请输出上面程序的输出结果

答案是

my_dic = {

'class1': [1,2,0],

'class2': [3,4,0],

'class3': [5,6,0]

}

原理与6.9.2相同

6.10统计日期间隔

题目要求

需要编写一个函数get_day_diff(date_lst, target), 入参示例如下

date_lst = [

'2019-01-01', '2019-01-15',

'2019-01-30', '2019-02-01',

'2019-02-05', '2019-02-15',

'2019-03-06', '2019-03-15',

'2019-04-01', '2019-04-05',

'2019-04-13', '2019-04-30',

'2019-05-05', '2019-05-06'

]

target = '2019-05-08'

函数计算date_lst里的日期与target的间隔天数,然后统计这些天数信息,最后返回的结果示例如下

{'7_days': 2, '30_days': 4, '90_days': 9, '180_days': 14}

7_days 表示时间间隔小于7天的日期个数

思路分析

不可能直接用字符串计算日期的间隔,需要将这些字符串转成datetime类型,这样才能计算两个日期的间隔

最终的结果需要用字典来保存,因此函数里需要初始化一个字典

info = {

'7_days': 0,

'30_days': 0,

'90_days': 0,

'180_days':0

}

用列表里的日期和target求间隔,然后做统计,如果间隔天数小于等于7天,则info['7_days'] = 1, 需要注意的地方是,一共有4个条件判断,而且这些条件判断之间不是互斥的关系,不能使用if else 这种逻辑判断,只需要4个if判断即可

示例代码

import datetime

def get_day_diff(date_lst, target):

info = {

'7_days': 0,

'30_days': 0,

'90_days': 0,

'180_days':0

}

target_date = datetime.datetime.strptime(target, '%y-%m-%d')

for date_str in date_lst:

date = datetime.datetime.strptime(date_str, '%y-%m-%d')

day_diff = (target_date - date).days

if day_diff <= 180:

info['180_days'] = 1

if day_diff <= 90:

info['90_days'] = 1

if day_diff <= 30:

info['30_days'] = 1

if day_diff <= 7:

info['7_days'] = 1

return info

if __name__ == '__main__':

date_lst = [

'2019-01-01', '2019-01-15',

'2019-01-30', '2019-02-01',

'2019-02-05', '2019-02-15',

'2019-03-06', '2019-03-15',

'2019-04-01', '2019-04-05',

'2019-04-13', '2019-04-30',

'2019-05-05', '2019-05-06'

]

info = get_day_diff(date_lst, '2019-05-08')

print(info)

6.11 修改字典里的value

题目要求

有一个字典,保存的是学生各个编程语言的成绩,内容如下

data = {

'python': '90',

'c ': '95',

'java': '90'

}

请编写函数 transfer_score,将value修改成int类型,最终字典内容变成

data = {

'python': 90,

'c ': 95,

'java': 90

}

完善下面的代码

def transfer_score(score_dict):

"""

在这里实现你的算法

:param score_dict:

:return:

"""

pass

if __name__ == '__main__':

data = {

'python': '90',

'c ': '95',

'java': '90'

}

transfer_score(data)

print(data)

思路分析

字典的结构非常简单,只需要遍历字典然后修改value类型即可,但如果你写成value = int(value) 是不会起到任何作用的,因为这样并没有修改真正的value,不要忘记了,想要修改字典里的value,必须通过key来修改,只能写成score_dict[key] = int(value)

示例代码

def transfer_score(score_dict):

"""

在这里实现你的算法

:param score_dict:

:return:

"""

for key, value in score_dict.items():

score_dict[key] = int(value)

if __name__ == '__main__':

data = {

'python': '90',

'c ': '95',

'java': '90'

}

transfer_score(data)

print(data)

6.12打印菱形

题目要求

实现函数print_diamond(count),根据参数大小在屏幕上输出菱形

*

***

*****

*******

*********

*******

*****

***

*

默认传入的参数一定是奇数,如果是7,则菱形最宽的地方有7个星号

思路分析

将菱形分为两部分,第一部分是从第一行到最宽的那一行,第二部分从最宽的那一行到最后一行

第一部分,星号的数量从1开始递增,每次增加两个,第二部分,星号的数量从count个开始递减,每次减少两个,与之对应的,第一部分,空格的数量是递减的。

count是多少,这个菱形就有多少行,使用for循环,让变量i从0变化到count-1,第一部分里,星号的数量和i之间的关系是2*i-1,空格的数量与i之间的关系是count//2-i,数学上,当i <=count//2时,都是第一部分图形。

进入第二部分后,空格与i之间的关系是i-count//2, 星号数量与i之间的关系(count-1)*2-1。

本练习题,希望能纠正你对编程的错误认知和理解,编程不是你以为的发挥个人想象力进行创造,如同搭积木一般自由自在随意操作,编程需要的是缜密的思维,严谨的逻辑思考,你看到的例子都是简单几行代码就实现了惊艳的功能,因此被忽悠的学习了python,但那些惊艳的例子不是编程的全部,甚至除了勾引你入门意外,什么都不会交给你。

本题展示出的,才是编程的本质,用程序语言表达出你对问题的思考,逻辑推理,解决一个实际问题所需要的,是扎实的算法功底,同学,努力吧。

示例代码

def print_diamond(count):

for i in range(count):

if i <= count//2:

print(" "*(count//2-i) "*"*(2*i 1))

else:

print(" "*(i - count//2) "*"*((count-i)*2-1))

print_diamond(5)

6.13 打印九九乘法表

题目要求

在屏幕上输出九九乘法表

1*1 = 1

1*2 = 2 2*2 = 4

1*3 = 3 2*3 = 6 3*3 = 9

1*4 = 4 2*4 = 8 3*4 = 12 4*4 = 16

1*5 = 5 2*5 = 10 3*5 = 15 4*5 = 20 5*5 = 25

1*6 = 6 2*6 = 12 3*6 = 18 4*6 = 24 5*6 = 30 6*6 = 36

1*7 = 7 2*7 = 14 3*7 = 21 4*7 = 28 5*7 = 35 6*7 = 42 7*7 = 49

1*8 = 8 2*8 = 16 3*8 = 24 4*8 = 32 5*8 = 40 6*8 = 48 7*8 = 56 8*8 = 64

1*9 = 9 2*9 = 18 3*9 = 27 4*9 = 36 5*9 = 45 6*9 = 54 7*9 = 63 8*9 = 72 9*9 = 81

思路分析

题目乍看起来挺难的,但其实非常简单,前提是你知道如何分析。

九九乘法表一共有9行,我们先考虑如何输出一行,一行解决了,使用一个for循环,就可以把所有行都输出了,定义函数print_line(line_number),该函数输出第line_number行。

当line_number等于9的时候,研究一下如何输出第9行。第9行有9个式子,从1到9分别乘以9,看见没,这不就是一个for循环么,使用一个for循环,让变量i从1变化到9,每次都与9相乘,并将结果组装成一个i*9 = xx 的式子,把所有的式子连接在一起,就是第9行的内容

解决了指定行的输出后,只需要一个简单的for循环,从1到9,分别去调用这个函数不就将整个乘法表打印出来了么?

示例代码

def print_line(line_number):

lst = []

for i in range(1, line_number 1):

part = "{index}*{number} = {res}".format(index=i, number=line_number, res=i*line_number)

lst.append(part)

print(" ".join(lst))

def print_table():

for i in range(1, 10):

print_line(i)

print_table()

6.14 统计字符数量

题目要求

使用input函数接收用户的输入,统计出其中英文字母、空格、数字和其它字符的个数,例如用户输入字符串"sdfijer384323js",程序最终输出信息

{'s': 2, 'd': 1, 'f': 1, 'i': 1, 'j': 2, 'e': 1, 'r': 1, '3': 3, '8': 1, '4': 1, '2': 1}

思路分析

input函数接收用户的输入,得到的是字符串,遍历字符串,统计字符串中每一个字符出现的次数,这种信息自然是用字典来存储,其他容器类型数据列表,元组,集合,都不适合存储这种key-value形式的数据

示例代码

string = input("请输入一个字符串:")

info = {}

for item in string:

info.setdefault(item, 0)

info[item] = 1

print(info)

6.15 水仙花数

输出所有的水仙花数,所谓水仙花数是指一个三位数,各个位上的数的立方相加在一起等于这个三位数,比如153,1的3次方 5的三次方 3的三次方 等于153

思路分析

水仙花数是一个3位数,数值范围是从100到999之间,写一个for循环,从100到999进行遍历,逐个判断该数是否为水仙花数即可。

对于一个三位数,获得这个数的每一位也并不难,以153为例

a = 153

while a > 0:

print(a % 10)

a //= 10

对数字的操作,永远离不开取模运算和整除运算

示例代码

for i in range(100, 1000):

res = 0

value = i

while value > 0:

res = (value)**3

value //= 10

if res == i:

print(res)

6.16 完全平方数

完全平方数,就是可以表示为某个整数的平方的数,例如9,是3的平方,16是4的平方,9和16都是完全平方数,请打印10000以内的完全平方数

思路分析

两个思路,一个思路是从1到10000进行遍历,对每一个数值进行判断,判断其是否为某个整数的平方。

第二个思路,从1到10000进行遍历,计算每一个数值的平方,如果这个平方小于10000,那么这个数值的平方就是完全平方数。

显然,第二个方法更容易一些,毕竟开根号这种事情,不能保证开出来的一定是整数。

示例代码

i = 1

value = 1

while value < 10000:

print(i, value)

i = 1

value = i**2

6.17求三位数组合

lst = [3, 6, 2, 7]

这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们

思路分析

从4个数字里挑出来,组成一个3位数,就算法而言,最方便的做法是用一个3层嵌套循环,分别从lst取数,取出来的数值组成一个3位数,题目要求无重复数字,这就要求,取出来的3个数字互不相等

示例代码

lst = [3, 6, 2, 7]

for a in lst:

for b in lst:

for c in lst:

if a != b and b != c and a != c:

print(a*100 b*10 c)

如何判断3个数值互不相等,还有一个更简单的办法

if a not in (b, c) and b != c:

6.18 翻转列表

题目要求

lst = [1,2,3,4,5]

翻转后

lst = [5,4,3,2,1]

思路分析

如果是用列表自带的功能,翻转列表是非常容易的事情

lst = lst[::-1]

现在,需要你自己来实现翻转过程,思路很简单,从头开始遍历列表,但只遍历到一半,左右两边对位交换数据即可

示例代码

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

length = len(lst)

for i in range(length//2):

tmp = lst[i]

lst[i] = lst[length - 1 - i]

lst[length - 1 - i] = tmp

print(lst)

6.19 列表偏移

题目要求

lst = [1,2,3,4,5],列表向右偏移两位后,变成lst = [5,4,1,2,3]

思路分析

先说简易思路,以向右偏移2位做例子,直接对列表进行切片操作,然后再讲切片后的列表连接在一起

lst = [1,2,3,4,5]

lst = lst[len(lst)-2:] lst[:len(lst)-2]

print(lst)

如果是初学者这样做,是完全可以接受的,但如果想更上一层楼,则需要更加合理的解决方法

首先,偏移的位数可能会超过列表的长度,比如向右偏移47位,此时,就要考虑用47%5 = 2,向右偏移47位等价于向右偏移2位

直接对列表进行切片操作,终究还是用了列表的原生功能,既然是练习题,且偏向于算法层面,那么我们应该自己来实现偏移,不生成新的列表,只在原列表上动手脚

不论偏移多少位,在实现时,每一次,我们只偏移1位,先实现偏移1位的情况。

偏移1位,只需要将列表最后一位记录下来,然后其他所有位置上的数值向右移动一位,最后将之前记录下来的列表最后一位放置在列表的开头即可。

实现了偏移1位,剩下的仅仅是写一个for循环,就可以偏移指定的位数

示例代码

lst = [1,2,3,4,5]

count = int(input("请输入偏移位数"))

count = count % len(lst)

for i in range(count):

tmp = lst[-1]

for j in range(len(lst)-1, 0, -1):

lst[j] = lst[j-1]

lst[0] = tmp

print(lst)

6.20 比较三个数的大小

使用input函数接收用户的输入,用户输入三个整数,中间用空格分隔,程序判断这三个数的大小关系,最后用print函数输出这个三个数,从大到小

输入: 43 22 88

输出: 88 43 22

思路分析

其实,真没啥好分析的

input函数返回的是字符串

我们需要的是int类型的数据,因此用split函数对字符串进行分割

分割后,三个部分都转换成int类型的数据

比较大小就是一个简单的事情了,纯粹是数学问题,小学生都会,只是你要把各种逻辑分支都考虑全,这种题目考察锻炼的是你的思维能力

示例代码

string = input("请输入三个整数,中间用空格分隔:")

lst = string.split()

a, b, c = int(lst[0]), int(lst[1]), int(lst[2])

if a >= b:

if c >= a:

print(c, a, b)

elif c >= b:

print(a, c, b)

else:

print(a, b, c)

else:

# b > a

if c >= b:

print(c, b, a)

elif c >= a:

print(b, c, a)

else:

print(b, a, c)

6.21 求学生最高分数科目和分数

题目要求

实现下面的函数

def get_max_socre(score_dic):

"""

返回学生考试成绩的最高分的科目和分数

:param score_dic:

:return:

"""

pass

传入的socre_dic 内容类似下面的数据

dic = {

'语文': 90,

'数学': 97,

'英语': 98

}

程序最终输出: 英语 98

思路分析

万变不离其中,遍历是万能的,遍历传入的字典,用一个变量保存最高分数,用另一个变量保存科目,遇到更高的分数,则修改这两个变量,就是这么的简单

示例代码

def get_max_socre(score_dic):

"""

返回学生考试成绩的最高分的科目和分数

:param score_dic:

:return:

"""

max_score = 0

max_course = ''

for key, value in score_dic.items():

if value > max_score:

max_score = value

max_course = key

print(max_course, max_score)

if __name__ == '__main__':

dic = {

'语文': 90,

'数学': 97,

'英语': 98

}

get_max_socre(dic)

6.22 水果

小明喜欢葡萄,香蕉,苹果,小红喜欢香蕉,桃子,草莓, 请写程序分析

他们共同喜欢的水果是什么?

他们两个喜欢的水果加在一起都有什么

什么水果是小明喜欢的却不是小红喜欢的?

什么水果是小红喜欢的却不是小明喜欢的

思路分析

交集,差集,并集,这些数据操作使用集合最为合适

示例代码

lst_1 = ['葡萄', '香蕉', '苹果']

lst_2 = ['香蕉', '桃子', '草莓']

set_1 = set(lst_1)

set_2 = set(lst_2)

print(set_1.intersection(set_2))

print(set_1.union(set_2))

print(set_1.difference(set_2))

print(set_2.difference(set_1))

7 中等难度算法练习题

7.1 验证回文串

题目要求

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写,例如“123a man, a plan, a canal: panama321”

严格的讲,这个字符串并不是一个回文,但是如果只考虑字母和数字并且忽略大小写,那么它确实是一个回文

思路分析

这道题目非常简单,需要掌握字符串的两个基本方法

isalpha() 判断字符串是否是字母

isdigit() 判断字符串是否是数字

逐一遍历字符串,判断每一个字符是否符合字母和数字的要求,把符合要求的字符串放入到一个list中,最后用列表的join方法将列表中的字符串拼接成一个新的字符串,题目还要求忽略大小写,新的字符串转成小写即可。

经过一番处理,从原始字符串得到了一个全是小写的只包含字母和数字的字符串,那么剩下的事情就变得非常简单了。

示例代码

# coding=utf-8

def ispalindrome(string):

# 把字符串中的字母和数字挑选出来

str_lst= []

for item in string:

if item.isalpha() or item.isdigit():

str_lst.append(item)

# 组成新的字符串,并转成小写

new_string = "".join(str_lst).lower()

for i in range(len(new_string)/2):

if new_string[i] != new_string[len(new_string)-1-i]:

return false

return true

if __name__ == '__main__':

string = "123a man, a plan, a canal: panama321"

print(ispalindrome(string))

7.2 翻转字符串里的单词

题目要求

给定一个字符串,逐个翻转字符串中的每个单

示例:

输入: " the sky is blue",

输出: "blue is sky the "

翻转后,空格不能减少,单词之间的空格数量不能发生变化

思路分析

如果只是单纯的翻转字符串,就过于简单了,因此要求翻转每一个单词,单词还是原来的样子,但是单词所在的位置却发生了翻转,第一个单词变成了倒数第一个单词。

可以先将整个字符串都翻转,这样单词的位置完成了翻转,结果如下:

"eulb si yks eht "

但这个时候,每一个单词的顺序还是颠倒的,因此需要对每一个单词进行一次翻转。

字符串是不可变对象,不能直接在字符串上进行翻转,要借助列表(list)进行翻转,翻转后在使用join方法将列表里的元素拼成字符串

示例代码

# coding=utf-8

def reverse_word(string):

# 先将整个句子翻转

word_lst = list(string)

for i in range(len(word_lst)/2):

word_lst[i], word_lst[len(word_lst)-1-i] = word_lst[len(word_lst)-1-i], word_lst[i]

print("".join(word_lst))

# 翻转里面的单词

start_index = none

end_index = none

b_word = false

for index, item in enumerate(word_lst):

if item.isalpha():

if not b_word:

start_index = index # 单词开始的位置

b_word = true

else:

if b_word:

end_index = index -1 # 单词结束的位置

b_word = false

# 已经知道单词开始和结束的位置,翻转这个单词

reverse_single_word(word_lst, start_index, end_index)

return "".join(word_lst)

def reverse_single_word(lst, start_index, end_index):

"""

将lst 中 start_index到end_index 这个区域翻转

:param lst:

:param start_index:

:param end_index:

:return:

"""

while start_index < end_index:

lst[start_index], lst[end_index] = lst[end_index], lst[start_index]

start_index = 1

end_index -= 1

if __name__ == '__main__':

print(reverse_word(" the sky is blue"))

7.3 寻找峰值

题目要求

峰值元素是指其值大于左右相邻值的元素,给定一个序列,请返回所有的峰值元素及其索引

示例1:

输入: nums = [1,2,3,1]

输出: [(2, 3)]

以列表形式输出,元素为tuple,tuple[0]表示索引,tuple[1]表示元素

思路分析

遍历序列,对于每一个元素,都要和自己左右两侧的相邻值进行比较,如果大于两侧相邻值,那么这个元素就是峰值元素。

需要注意的是序列的两端元素,他们都只有一侧有相邻元素,因此在逻辑处理上要考虑这种边界情况。

示例代码

def find_peak(lst):

if len(lst) <= 2:

return -1

peak_lst = []

for index, item in enumerate(lst):

big_than_left = false # 是否比左侧大

big_than_right = false # 是否比右侧大

# 考虑边界情况

if index == 0:

big_than_left = true

big_than_right = item > lst[index 1]

elif index== len(lst) - 1:

big_than_right = true

big_than_left = item > lst[index-1]

else:

big_than_left = item > lst[index-1]

big_than_right = item > lst[index 1]

if big_than_left and big_than_right:

peak_lst.append((index, item))

return peak_lst

if __name__ == '__main__':

lst = [1, 2, 1, 3, 5, 6, 4, 8]

print(find_peak(lst))

7.4 字符串转整数

题目要求

实现函数atoi,将字符串转为整数,具体要求如下:

字符串第一个非空字符如果不是数字,字符串无效,返回0

字符串第一个非空字符如果是 或者 -,则表示正负,且该字符后面的第一个非空字符必须是数字,否则视为无效字符串,返回0

遇到数字,将其与之后连续的数字字符组合起来形成整数

有效数字范围是[?231, 231 ? 1],数值超过可表示的范围,则返回231 ? 1 或?231 。

示例

1、 "42" 转成 42

2、 " - 42 43" 转成 -4243

3、 "4193 word" 转成4193

4、 "word 4193" 转成0

5、 "-91283472332" 转成-91283472332, 比?2^31还小,返回?2^31

思路分析

基本思路是遍历字符串,遍历过程中,关键点是找到第一个非空字符,这个非空字符决定了接下来程序的走向。

如果第一个非空字符是 或者-,就决定了数值的正负,后面的工作是提取数值

如果第一个非空字符是数字,事情变得简单了,直接提取数值。

如果第一个非空字符既不是数字,也不是 或-,就是无效字符串,返回0即可。

提取数值的过程,用一个列表保存单个数字,直到遇到一个既不是数字也不是空格的字符或者遇到字符串末尾,将列表里的数值连接起来并用int转成数值。

程序的最后,要和最大值和小值比较。

示例代码

# coding=utf-8

max_int = 2**31-1

min_int = -2**31

def atoi(string):

"""

将字符串转成int

:param string:

:return:

"""

if not isinstance(string, basestring):

return 0

if string == u'':

return 0

tag = 1 # 标识正负, 赋值为1表示为正

value = 0

for index, item in enumerate(string):

# 空字符不处理

if item == u' ':

continue

elif item in (' ', '-'):

if item == '-':

tag = -1

value = get_int(string, index)

break

elif item.isdigit():

value = get_int(string, index)

break

else:

return 0

value = tag * value

if value > max_int:

value = max_int

if value < min_int:

value = min_int

return value

def get_int(string, start_index):

"""

提取数值

:param string: 字符串

:param start_index: 数值开始部分

:return:

"""

lst = []

for index in range(start_index, len(string)):

if string[index] == u' ': # 空字符不用处理

continue

if string[index].isdigit(): # 遇到不是数字时结束

lst.append(string[index])

return int(''.join(lst))

if __name__ == '__main__':

print atoi("42")

print atoi(" - 42 43 ")

print atoi("4193 4 word")

print atoi("word 4193")

print atoi("-91283472332")

7.5 判断数组是山脉数组

如果一个数组k符合下面两个属性,则称之为山脉数组

数组的长度大于等于3

存在i,i >0 且 i < len(k)-1, 使得k[0] < k[1]< ... < k[i-1] < k[i] > k[i 1] ... >k[len(k)-1], 这个i就是顶峰索引。

现在,给定一个山脉数组,求顶峰索引。

输入: [1, 3, 4, 5, 3]

输出: true

输入:[1, 2, 4, 6, 4, 5]

输出:false

思路分析

山脉数组的特点是在到达山脉峰顶前,每个元素都比右侧的元素小,过了峰顶之后,每个元素都比右侧元素大。

对数组k进行遍历,当k[index] < k[index 1] 不成立时,说明可能到达峰顶了,记录当前这个索引index, 接下来要判断index的值,如果index等于0,说明k[0]

如果index的值符合要求,也只能说明在index之前,是一个爬坡的过程,过了index之后,需要再用一个循环继续遍历,如果lst[index]>lst[index 1] 不成立,则不是山脉数组,前半段,后半段的判断简单一些,不涉及到峰顶索引位置的判断。

示例代码

# coding=utf-8

def is_mountain_lst(lst):

# 如果长度小于3,不符合定义

if len(lst) < 3:

return false

# 第一个循环找到发生转折的地方

index = 0

while index < len(lst)-1:

if lst[index] < lst[index 1]:

index = 1

else:

# 当前元素比右侧元素小,说明到达峰顶了,停止循环

break

# 如果index == 0,说明lst[0] < lst[1] 不成立,显然不是山脉数组

# 如果index == len(lst) -1, 说明倒数第2个数小于倒数第一个数,显然也不是山脉数组

if index == 0 or index== len(lst) -1:

return false

# 接下来要判断从index 开始到列表末尾,是不是都满足lst[index] > lst[index 1]

while index < len(lst)-1:

if lst[index] > lst[index 1]:

index = 1

else:

return false

return true

if __name__ == '__main__':

print is_mountain_lst([1, 2])

print is_mountain_lst([1, 2, 3])

print is_mountain_lst([1, 3, 4, 5, 3])

print is_mountain_lst([1, 2, 4, 6, 4, 5])

7.6 二进制中为1的位数

题目要求

给定一个整数,请计算二进制中为1的位数

输入: 13

输出: 3

解释: 13的二进制表示是 1101,位为1的数量是3

思路分析

如果一个数是奇数,那么它的二进制的最后一位一定是1,道理很简单,其他的位都表示2n 只有最后一位表示20 。我们可以利用最后一位是否为1来统计为1的位数,这就需要最后一位是变化的,还好,我们可以用位运算符 >> (右移位运算符)

13 的 二进制表示是 1101 ,13>>1 就表示二进制的每一位都向右移动一位,移动后为 110,最右边的1舍弃。如果二进制最后一位是1,那么一定是奇数。

示例代码

# coding=utf-8

def count_one_bits(value):

count = 0

# 当value等于0时,二进制的每一位都是0

while value:

if value % 2 == 1:

count = 1

value = value >> 1

return count

if __name__ == '__main__':

print(count_one_bits(6))

print(count_one_bits(13))

小小的升级

上面的分析中,利用奇偶数来判断最后一位是否为1,除此以外,还可以利用位运算符 &(按位与)来判断最后一位是否为1。

13 的二进制是 1101 ,1的二进制是1,13&1 等价于1101 & 0001, 相同位进行与运算,得到结果为0001。

示例代码

# coding=utf-8

def count_one_bits(value):

count = 0

# 当value等于0时,二进制的每一位都是0

while value:

if value & 1 == 1:

count = 1

value = value >> 1

return count

if __name__ == '__main__':

print(count_one_bits(6))

print(count_one_bits(13))

7.7 寻找缺失数字

题目要求

有一组数字,从1到n,中减少了一个数,顺序也被打乱,放在一个n-1的数组里,请找出丢失的数字。

输入: 5 3 1 2 0

输出:4

思路分析

这道题目虽小,却有多种解法。

解法1 利用递增序列求和

把4放回序列中,那么整个序列的和就是(n*(n 1))/2 ,n = 5, 结果为 15,现在序列里没有4 ,5 3 1 2 0 = 11, 15-11恰好就是缺失的数字

示例代码:

def find_miss_number_1(lst):

n = len(lst)

sum_lst = n*(n 1)/2

sum_lst_ex = sum(lst)

miss_number = sum_lst - sum_lst_ex

return miss_number

if __name__ == '__main__':

lst = [5, 3, 1, 2, 0]

print(find_miss_number_1(lst))

解法2 利用索引

示例中的序列有5个数字,算上丢失的有6个数字,创建一个长度为6的标识列表,元素都初始化为0,遍历序列,找到每个值在标识列表里的对应位置,修改元素值为1,哪个位置没有被修改为1,那个位置的索引就是丢失的值

def find_miss_number_2(lst):

tag_lst = [0 for i in range(len(lst) 1)]

for item in lst:

tag_lst[item] = 1

for index, item in enumerate(tag_lst):

if item == 0:

return index

if __name__ == '__main__':

lst = [5, 3, 1, 2, 0]

print(find_miss_number_2(lst))

解法3 利用亦或运算

0 与任意一个数做亦或操作还是自身,一个数与自己做亦或操作则等于0。先不考虑缺失了哪个数字,用一个变量res 存储 0^1^2...^n,然后再用res逐个与序列里的值进行亦或操作,这样,没有缺失的值会与自己进行亦或操作得到0,而缺失的那个数字则最终被留存下来

def find_miss_number_3(lst):

res = 0

for i in range(1, len(lst) 1):

res ^= i

for item in lst:

res ^= item

return res

if __name__ == '__main__':

lst = [5, 3, 1, 2, 0]

print(find_miss_number_3(lst))

7.8 二进制求和

题目要求

计算两个二进制字符串的和

输入: 111 1110

输出: 10101

思路分析

参与计算的二进制字符串长度可以不同,这样为计算带来麻烦,所以,首先要补齐那个较短的字符串。如果较短字符串长度比长字符串小3,就在较短字符串前面补3个0.

计算的过程,可以模拟手动计算的过程,从右向左逐位计算。反向遍历字符串,相同位上都是1,相加后,这一位就变成了0,而且还要向前进位,下一位的计算要把进位的数值考虑进来,计算右数第一位时,进位设置为0。

示例代码

def binary_add(str_1, str_2):

# 先补齐

str_1_length = len(str_1)

str_2_length = len(str_2)

if str_1_length < str_2_length:

str_1 = "0"*(str_2_length - str_1_length) str_1

else:

str_2 = "0"*(str_1_length - str_2_length) str_2

# 进行计算

index = len(str_1) - 1

pre_num = 0 # 记录进位

res_lst = [] # 记录结果

# 方向遍历

while index >= 0:

item_1 = int(str_1[index])

item_2 = int(str_2[index])

item_sum = item_1 item_2 pre_num

pre_num = item_sum // 2

curr_num = item_sum % 2

# 新的计算结果插入到结果的第一位

res_lst.insert(0, str(curr_num))

index -= 1

if pre_num == 1:

res_lst.insert(0, '1')

return ''.join(res_lst)

if __name__ == '__main__':

print(binary_add("111", '1110'))

print(binary_add("11", '1'))

print(binary_add("101", '1001'))

7.9 第一个只出现一次的字符

题目要求

一个只包含小写字母的字符串,请找出第一个只出现一次的字符,并返回索引,如果这样的字符不存在返回-1,不允许使用字典

输入: abcacd

输出: 1

解释: 出现一次的字符是 b 和 d,b是第一个出现的

思路分析

必须遍历字符串,统计每个字符出现的次数,然后再遍历一遍字符串,如果某个字符出现的次数是1,则返回这个字符的索引。

题目要求不允许使用字典,因此,需要换一个数据类型来存储字符串出现的次数,这里可以使用列表,创建一个长度为26的列表,元素初始化为0。小写字母一共有26个,字符a 的ascii码10进制是97,字符z的ascii码10进制是122,遍历过程中,先将字符转成ascii码十进制数值并减去97,就得到了在列表中的索引,列表索引位置元素加1,这样,就解决了字符出现次数的记录问题。

再次遍历字符串时,还是对字符进行转换,转换后的数值作为索引找到列表中的值,如果值为1,那么这个字符就是出现次数为1的字符。

示例代码

# coding=utf-8

def find_first_single_char(string):

"""

寻找字符串中第一个只出现一次的字符

:param string:

:return:

"""

# 记录每个字符出现的次数

lst = [0 for i in range(26)]

for item in string:

lst[ord(item) - 97] =1

for index, item in enumerate(string):

if lst[ord(item) - 97] == 1:

return index

return -1

if __name__ == '__main__':

print(find_first_single_char('abcacd'))

7.10 字符串相乘

题目要求

有两个字符串,str1,str2,内容为数值,数值均大于0请编写算法计算两个字符串相乘的结果,不可以使用大数据类型,不可以把字符串直接转成整数来处理。

输入: str1='3' str2='5'

输出: '15'

输入: str1='32' str2='15'

输出: '480'

输入: str1='323434223434234242343'

str2='15492828424295835983529'

输出:

思路分析

题目要求的很明确,不可以直接把字符串转成整数然后相乘,所以int(str1)*int(str2)是不被允许的。

不止如此,第三个示例里,数值已经非常大,已经超出了264 ,在计算过程中,中间结果也非常的大,在大多数编程语言里,你找不到合适的数据类型来存储这样的数据,因此,只能用字符串来保存。

先来看第一个示例, 3 乘 5, 简单的乘法,在看第二个示例, 32 乘 15 ,小学的时候都学过如何计算乘法,32*5 32*10 =480。需要编写一个算法,来实现这个计算过程,但是要注意,32*5的结果必须保存成为字符串"160",为什么不能保存成数值型数据160呢?就32*15来说,保存成数值是没有问题的,可对于第三个示例,在计算中间结果时,得到的结果太大了,根本无法用数值型变量保存,因此必须保存成字符串。

最简单的乘法

我们需要先实现一个简单的字符串乘法,函数定义为

def single_str_multi(str1, single):

"""

single是一个小于10的数值, 例如 323354 * 4

:param str1: 基础数值

:param single: 单个数值

:return:

"""

pass

如果总是可以保证single是一个小于10的数值,那么计算起来就简单容易的多了,计算时,反向遍历str1,每个数值分别与single相乘,计算进位和当前位置留下的值,并存入一个列表中,遍历结束后,要注意检查最后一次进位的值,算法实现如下

def single_str_multi(str1, single):

"""

single是一个小于10的数值, 例如 323354 * 4

:param str1: 基础数值

:param single: 单个数值

:return:

"""

pre_sum = 0 # 进位

single = int(single)

res_lst = []

for item in reversed(str1):

# 每次计算都要考虑上一次计算结果的进位

item_num = int(item) * single pre_sum

pre_sum = item_num / 10 # 计算进位

curr_num = item_num % 10 # 计算当前位置的值

res_lst.insert(0, str(curr_num))

if pre_sum > 0:

res_lst.insert(0, str(pre_sum))

return ''.join(res_lst)

有了single_str_multi函数做基础,就可以实现最终的字符串相乘算法了,定义函数

def str_multi(str1, str2):

pass

这一次,反向遍历str2,每次遍历都得到一个单一数值single,这样恰好可以调用single_str_multi 函数,但是需要注意的是每次得到的结果都要根据single的位置补0,如果single是str2的百位,那么计算结果就要乘100。

字符串相加

每次调用single_str_multi函数,得到的都是中间结果,这些结果必须加在一起才能得到乘法的结果,因此,我们还需要一个计算字符串加法的函数,前面的计算二进制加法的练习题已经有过讲解,代码稍作修改即可

def str_sum(str1, str2):

"""

计算两个字符串的加法

:param str1:

:param str2:

:return:

"""

# 先补齐

str_1_length = len(str1)

str_2_length = len(str2)

if str_1_length < str_2_length:

str1 = "0"*(str_2_length - str_1_length) str1

else:

str2 = "0"*(str_1_length - str_2_length) str2

# 进行计算

index = len(str1) - 1

pre_num = 0 # 记录进位

res_lst = [] # 记录结果

# 反向遍历

while index >= 0:

item_1 = int(str1[index])

item_2 = int(str2[index])

item_sum = item_1 item_2 pre_num

pre_num = item_sum/10

curr_num = item_sum % 10

# 新的计算结果插入到结果的第一位

res_lst.insert(0, str(curr_num))

index -= 1

if pre_num == 1:

res_lst.insert(0, '1')

return ''.join(res_lst)

字符串相乘

万事具备,之前东风,最后来实现str_multi函数

def str_multi(str1, str2):

"""

字符串相乘

:param str1:

:param str2:

:return:

"""

res = '0'

for index, item in enumerate(reversed(str2)):

if item == '0': # 为0时不用计算

continue

# 一定要补0

single_res = single_str_multi(str1, item) '0'*index

# 每次相乘结果要相加

res = str_sum(res, single_res)

return res

全部代码

def str_sum(str1, str2):

"""

计算两个字符串的加法

:param str1:

:param str2:

:return:

"""

# 先补齐

str_1_length = len(str1)

str_2_length = len(str2)

if str_1_length < str_2_length:

str1 = "0"*(str_2_length - str_1_length) str1

else:

str2 = "0"*(str_1_length - str_2_length) str2

# 进行计算

index = len(str1) - 1

pre_num = 0 # 记录进位

res_lst = [] # 记录结果

# 方向遍历

while index >= 0:

item_1 = int(str1[index])

item_2 = int(str2[index])

item_sum = item_1 item_2 pre_num

pre_num = item_sum//10

curr_num = item_sum % 10

# 新的计算结果插入到结果的第一位

res_lst.insert(0, str(curr_num))

index -= 1

if pre_num == 1:

res_lst.insert(0, '1')

return ''.join(res_lst)

def single_str_multi(str1, single):

"""

single是一个小于10的数值, 例如 323354 * 4

:param str1: 基础数值

:param single: 单个数值

:return:

"""

pre_sum = 0 # 进位

single = int(single)

res_lst = []

for item in reversed(str1):

# 每次计算都要考虑上一次计算结果的进位

item_num = int(item) * single pre_sum

pre_sum = item_num // 10 # 计算进位

curr_num = item_num % 10 # 计算当前位置的值

res_lst.insert(0, str(curr_num))

if pre_sum > 0:

res_lst.insert(0, str(pre_sum))

return ''.join(res_lst)

def str_multi(str1, str2):

"""

字符串相乘

:param str1:

:param str2:

:return:

"""

res = '0'

for index, item in enumerate(reversed(str2)):

if item == '0': # 为0时不用计算

continue

# 一定要补0

single_res = single_str_multi(str1, item)

if single_res != '0':

single_res = '0'*index

# 每次相乘结果要相加

res = str_sum(res, single_res)

return res

if __name__ == '__main__':

print(str_multi('323434223434234242343', '15492828424295835983529'))

7.11 整数翻转

题目要求

def reverse_int(number):

已知函数reverse_int,参数number是正整数,实现函数,将number翻转并返回,不要使用str函数将数值转成字符串

示例

输入: 12345

输出: 54321

思路分析

题目要求不能使用str函数将数值转成字符串,因为这样做实在是太简单了,下面是这样处理的示例代码

def reverse_int(number):

str_number = str(number)

lst = list(str_number)

lst = lst[::-1]

return int("".join(lst))

print(reverse_int(12345))

将数值转成字符串

将字符串转成list

翻转list,注意翻转方法lst[::-1]

使用join方法连接列表里的字符串,并最终转成int类型数据返回

既然不允许这样做,那么,我们就考虑别的方法

对于整数的操作,你一定要考虑求模运算和除法运算

对10求模可以得到一个整数的个位数

一个数除以10,可以去掉个位数

题目要求翻转,那么,我们可以先对10求模,就得到了个位数,而这个个位数就是翻转后的最高位,然后在除10,就去除了个位数。

讲过上面两步操作,我们得到了两个数,一个是个位数,一个是去除个位数后剩余的部分,对于这个剩余的部分,我们可以继续上面的两步操作,这样,我们就逆序的得到了每一位数,每次求模得到得数就可以组成题目所要求的翻转后的数

示例代码

def reverse_int(number):

reverse_number = 0

tmp = number

while tmp > 0:

end_number = tmp # 得到个位数

tmp = tmp//10 # 去除个位数后剩余的部分

reverse_number = reverse_number*10 end_number # 组建翻转后的数

return reverse_number

print(reverse_int(12345))

7.12 时间转换

题目要求

请将下列形式的字符串转换成秒数

2小时3分55秒 =》 7435

35分21秒 =》 2121

55秒 =》 55

思路分析

1小时=3600秒

1分钟=60秒

将小时的单位,分钟的单位都转成秒,然后相加,就得到了秒数。可以用"小时","分", "秒"作为分割符分隔字符串,得到时间单位前面的数值。不过这样操作起来,比较麻烦。

我想到一个简单的办法,先将字符串中的"小"字替换掉,然后利用正则表达式模块的split方法分割字符串。

import re

string = "1时13分15秒"

arrs = re.split('[时分秒]', string)

print(arrs)

程序输出结果为

['1', '13', '15', '']

1*3600 13*60 15 = 4395

实例代码

import re

def convert_time(time_str):

seconds = 0

if not time_str:

return seconds

time_str = time_str.replace('小', '')

arrs = re.split('[时分秒]', time_str)

arrs = arrs[:-1]

base = 1

for item in reversed(arrs):

seconds = base*int(item)

base *= 60

return seconds

if __name__ == '__main__':

print(convert_time('2小时3分55秒'))

print(convert_time('35分21秒'))

print(convert_time('55秒'))

7.13 字典里的value (2)

题目要求

有一个字典,保存的是学生各个编程语言的成绩,内容如下

data = {

'python': {'上学期': '90', '下学期': '95'},

'c ': ['95', '96', '97'],

'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}]

}

各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类型,请实现函数transfer_score(score_dict),将分数修改成int类型

思路分析

不同于上一篇,本次字典的结构变得复杂了,但思路不变,仍然要遍历字典,只是在遍历时,要根据value的类型决定如何进行处理,如果value的类型是字典,那么则仍然按照上一篇的方法进行处理,如果value的类型是列表,则需要对列表里的元素类型进行判断,如果是字符串,则直接转换,如果是字典,则需要按照上一篇的方法进行处理,这次,我采用递归函数进行处理。

示例代码

import pprint

def transfer_score(data):

# 如果data是字典

if isinstance(data, dict):

for key, value in data.items():

data[key] = transfer_score(value)

return data

# 如果data 是列表

if isinstance(data, list):

data_lst = []

for item in data:

data_lst.append(transfer_score(item))

return data_lst

if isinstance(data, str):

return int(data)

if __name__ == '__main__':

data = {

'python': {'上学期': '90', '下学期': '95'},

'c ': ['95', '96', '97'],

'java': [{'月考': '90', '期中考试': '94', '期末考试': '98'}]

}

data = transfer_score(data)

pprint.pprint(data)

7.14统计代码行数

题目要求

实现函数get_py_program_count,统计指定目录下所有的python文件代码行数

def get_py_program_count(py_path):

pass

思路分析

题目要求统计代码函数,但是一个文件里代码有多少行并没有一个明确的定义,这里就可以有自由发挥的空间,我自己的定义是文件里只要不是空行,只要不是以 # 开头,就算一行有效代码,读取一个文件,逐行进行判断,如果是有效代码,代码行数加1

先实现一个函数,统计一个文件里的代码行数,题目要求的是计算指定目录下所有文件代码行数,那么只需要写一个函数,获取指定目录下所有python脚本的目录,然后用for循环逐个文件计算代码行数并累加即可

示例代码

import os

def get_file_lst(py_path, suffix):

"""

遍历指定文件目录下的所有指定类型文件

:param py_path:

:return:

"""

file_lst = []

for root, dirs, files in os.walk(py_path):

for file in files:

file_name = os.path.join(root, file)

if file_name.endswith(suffix):

file_lst.append(file_name)

return file_lst

def get_program_line_count(file_name):

"""

返回单个py脚本的代码行数

:param filename:

:return:

"""

# 存储代码行数

count = 0

with open(file_name, 'r', encoding='utf-8')as f:

for line in f:

line = line.strip()

if not line:

continue

if line.startswith("#"):

continue

count = 1

return count

def get_py_program_count(py_path):

# 获取指定目录下所有的python脚本

file_lst = get_file_lst(py_path, '.py')

count = 0

# 遍历列表,获取单个python脚本的代码行数

for file_name in file_lst:

count = get_program_line_count(file_name) # 累加代码函数

return count # 返回代码总函数

if __name__ == '__main__':

py_path = '/users/kwsy/pycharmprojects/pythonclass'

print(get_py_program_count(py_path))

7.15 提取单词

题目要求

从字符串里提取单词,例如”this is a book“,将单词放到列表里,要求是不能使用split函数

思路分析

字符串相关的算法,往往都需要对字符串进行遍历,设置一个标识位 b_start,初始值设置为false,表示遍历过程中还没有遇到单词

遍历过程中,遇到字母后,b_start修改为true,记录单词开始的位置,遇到空格后,b_start修改为false,记录单词结束的位置,根据开始位置和结束位置进行字符串截取,即可获得单词

示例代码

string = " this is a book"

lst = []

# 记录单词开始和结束的位置

b_start = false

start = 0 # 单词开始的位置

end = 0 # 单词结束的位置

for index, item in enumerate(string):

if item != " ":

if b_start:

continue

else:

b_start = true

start = index

else:

if b_start:

b_start = false

end = index - 1

lst.append(string[start:end 1])

if b_start:

lst.append(string[start:])

print(lst)

7.16 学生成绩分析

题目要求

文件score.txt中存储了学生的考试信息,内容如下

小明,98

小刚,90

小红,91

小王,98

小刘,80

请写代码,读取文件数据,并进行如下分析

最高分和最低分分别是多少?

得最高分的学生有几个? 得最低分的学生有几个

平均分是多少?

思路分析

读取文件,这没啥可说的,剩下的是简单的统计,不要被文件迷惑,你读取数据以后,转换成列表,不就是你所熟悉的事物了么,如果列表还不熟悉,那你应该好好复习一下列表了

示例代码

def read_file(filename):

"""

读取文件数据

:param filename:

:return:

"""

f = open(filename, 'r', encoding='utf-8')

datas = f.readlines()

datas = [item.strip() for item in datas]

f.close()

return datas

def analse_score():

datas = read_file('score.txt')

score_lst = []

for item in datas:

score = int(item.split(',')[1])

score_lst.append(score)

max_score = max(score_lst)

min_score = min(score_lst)

max_score_count = score_lst.count(max_score)

min_score_count = score_lst.count(min_score)

avg = sum(score_lst)/len(score_lst)

print(max_score, min_score)

print(max_score_count, min_score_count)

print(avg)

if __name__ == '__main__':

analse_score()

7.17 学生成成绩分析

题目要求

文件score.txt中存储了学生的考试信息,内容如下

小明,98,96

小刚,90,94

小红,90,94

小王,98,96

小刘,80,90

小赵,90,96

第二列是数学成绩,第三列是语文成绩

请写程序分析:

哪些同学语文成绩是相同的?

哪些同学数学成绩是相同的?

哪些同学语文和数学成绩都是相同的?

总分最高的同学是谁,分数是多少?

总分的平均分是多少?

### 思路分析

都是简单的数据统计分析,谈不上思路,跟着代码过一遍,相信你可以理解代码的意图和作用

### 示例代码

def read_file(filename):

"""

读取文件数据

:param filename:

:return:

"""

f = open(filename, 'r', encoding='utf-8')

datas = f.readlines()

datas = [item.strip() for item in datas]

f.close()

return datas

def analse_score():

datas = read_file('score.txt')

stu_lst = []

for data in datas:

arrs = data.split(',')

name = arrs[0]

shuxue = int(arrs[1])

yuwen = int(arrs[2])

stu_lst.append({'name': name, 'shuxue': shuxue, 'yuwen': yuwen})

yuwen_dict = {}

shuxue_dict = {}

ys_dict = {}

max_score_sum = 0

stu_score_sum = 0

for stu in stu_lst:

name = stu['name']

shuxue = stu['shuxue']

yuwen = stu['yuwen']

score_sum = shuxue yuwen

stu_score_sum = score_sum

if score_sum > max_score_sum:

max_score_sum = score_sum

yuwen_dict.setdefault(yuwen, [])

yuwen_dict[yuwen].append(name)

shuxue_dict.setdefault(shuxue, [])

shuxue_dict[shuxue].append(name)

ys_dict.setdefault((shuxue, yuwen), [])

ys_dict[(shuxue, yuwen)].append(name)

for yuwen, name_lst in yuwen_dict.items():

if len(name_lst) > 1:

print(yuwen, name_lst)

print("*"*20)

for shuxue, name_lst in shuxue_dict.items():

if len(name_lst) > 1:

print(shuxue, name_lst)

print("*"*20)

for score, name_lst in ys_dict.items():

sum_score = sum(score)

if sum_score == max_score_sum:

print("总分最高的学生", name_lst, score)

if len(name_lst) > 1:

print(score, name_lst)

print(round(stu_score_sum/len(stu_lst), 2))

if __name__ == '__main__':

analse_score()

7.18 投票选班长

题目要求

文件data里存储了投票选班长的选票情况

小红

小刚

小明

小明

小刚

小刘

小红

小张

小王

小明

请写代码分析

一共有多少人参加了班长选举?

这些人分别得了多少选票?

### 思路分析

统计有多少人参加了班长选举,将名字存储到集合中,集合的大小就是答案

统计分别得了多少票,先创建一个空字典,以人名做key,0做value,遍历字典,增加value的值,最终就可以得到选举情况

示例代码

def read_file(filename):

"""

读取文件数据

:param filename:

:return:

"""

f = open(filename, 'r', encoding='utf-8')

datas = f.readlines()

datas = [item.strip() for item in datas]

f.close()

return datas

def toupiao():

datas = read_file('data')

info = {}

for name in datas:

if name not in info:

info[name] = 1

else:

info[name] = 1

print(len(info))

print(info)

def toupaio2():

datas = read_file('data')

info = {}

for name in datas:

if name not in info:

info[name] = 0

info[name] = 1

print(len(info))

print(info)

def toupiao3():

datas = read_file('data')

info = {}

for name in datas:

info.setdefault(name, 0)

info[name] = 1

print(len(info))

print(info)

if __name__ == '__main__':

toupiao3()

7.19 水果账单

题目要求

文件fruits_saturday.txt中保存了小明周六买水果的消费情况

苹果 30.6

香蕉 20.8

葡萄 15.5

草莓 30.2

樱桃 43.9

请写程序分析

这些水果一共花费了多少钱?

花费最多的水果是哪个

文件fruits_sunday.txt 中保存了小明周日买水果的消费情况

苹果 20.6

香蕉 16.8

樱桃 30.5

大鸭梨 10.5

火龙果 18.8

请写程序分析

周六,周日两天,一共买了多少水果

周六,周日两天都买的水果有哪些?

哪些水果是周日买了而周六没有买的?

两天一共花费了多少钱买水果

哪个水果花费的钱最多,花了多少?

思路分析

首先,需要写一个函数,读取账单数据,以字典形式返回消费数据,接下来,则是各种统计操作,需要数量的使用字典,集合这两种数据类型

示例代码

def read_fruits(filename):

info = {}

with open(filename, 'r', encoding='utf-8') as f:

for line in f:

arrs = line.strip().split()

name = arrs[0]

money = float(arrs[1])

info[name] = money

return info

def func1():

info = read_fruits('fruits_saturday.txt')

# 这些水果一共花费了多少钱?

values = list(info.values())

print(sum(values))

# 花费最多的水果是哪个

max_money = 0

name = ''

for key, value in info.items():

if value > max_money:

max_money = value

name = key

print(name)

def func2():

info1 = read_fruits('fruits_saturday.txt')

info2 = read_fruits('fruits_sunday.txt')

set1 = set(list(info1.keys()))

set2 = set(list(info2.keys()))

# 周六,周日两天,一共买了多少水果

print(set1.union(set2))

# 周六,周日两天都买的水果有哪些?

print(set1.intersection(set2))

# 哪些水果是周日买了而周六没有买的?

print(set2.difference(set1))

# 两天一共花费了多少钱买水果

print(sum(list(info1.values())) sum(list(info2.values())))

# 哪个水果花费的钱最多,花了多少?

name = ''

max_money = 0

for key, value in info1.items():

if value > max_money:

max_money = value

name = key

for key, value in info2.items():

if value > max_money:

max_money = value

name = key

print(name)

if __name__ == '__main__':

func1()

func2()

7.20 文件读取解析

已知一个文件名为ip.txt的文件,里面存储了大量ip地址

192.168.0.1

192.168.0.2

192.168.0.3

192.168.0.1

192.168.0.4

192.168.0.5

192.168.0.5

192.168.0.2

192.168.0.2

192.168.0.5

请编写函数,读取文件并分析数据,根据ip出现次数进行排序,程序最终输出ip 和 出现次数,从小到大

思路分析

读取数据,统计每一个ip出现的次数,将统计结果存储到字典中,处理文件中的数据时,时刻要记住,文件中的每一行数据最后都会有 \n 换行符,一定要用strip函数将这个换行符去掉

我们无法对字典进行排序,所以,遍历字典,将字典中的数据存储到列表中,每一项都是一个元组,元组内存储ip 和 出现次数,内容如下

[('192.168.0.1', 2), ('192.168.0.2', 3), ('192.168.0.3', 1), ('192.168.0.4', 1), ('192.168.0.5', 3)]

对列表进行排序,可以指定排序的key,这里使用lambda表达式,取列表里每一个元组内的第二个元素做为排序比较时的key

示例代码

def analyse_ip(filename):

ip_info = {}

with open(filename) as f:

for line in f:

ip = line.strip()

ip_info.setdefault(ip, 0)

ip_info[ip] = 1

lst = []

for key, value in ip_info.items():

lst.append((key, value))

lst.sort(key=lambda item:item[1])

for item in lst:

print(item)

if __name__ == '__main__':

analyse_ip('ip.txt')

7.21 有效电话号码

题目要求

给定一个包含电话号码列表(一行一个电话号码)的文本文件,假设一个有效的电话号码必须满足以下两种格式: (xxx) xxx-xxxx 或 xxx-xxx-xxxx。(x 表示一个数字)

文本文件里的内容如下:

987-123-4567

123 456 7890

(123) 456-7890

(125) 902-2934

987-123 4997

请读取文件并输出符合要求的电话

思路分析

对于电话,email,身份证等信息,有着明确的格式要求,这类信息都可以用正则表达式来判断是否符合格式要求

python里正则表达式要用到re这个模块,先创建一个pattern

pattern = re.compile("\d{3}-\d{3}-\d{3}|\(\d{3}\) \d{3}-\d{3}")

对于文件里的一行内容,则使用pattern.match方法来判断该行内容是否匹配正则表达式,如果符合则返回一个_sre.sre_match 类型的对象,如果不匹配,则返回none

示例代码:

# coding=utf-8

import re

# 定义正则表达式

pattern = re.compile("\d{3}-\d{3}-\d{3}|\(\d{3}\) \d{3}-\d{3}")

print type(pattern.match("987-123-4567"))

with open('phones')as fileobj:

lines = fileobj.readlines()

for line in lines:

if pattern.match(line):

# strip函数去掉line末尾的换行符

print(line.strip())

7.22 旋转数组

题目要求

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数,要求使用空间复杂度为 o(1) 的原地算法

输入: [1,2,3,4,5,6,7] 和 k = 3

输出: [5,6,7,1,2,3,4]

思路分析

思路1,多次移动

如果没有空间复杂度为o(1)的要求,这个题目非常简单,简单的做一下切片处理就可以了

lst = [1, 2, 3, 4, 5, 6, 7]

lst = lst[len(lst)-3:] lst[0:len(lst)-3]

print(lst)

但切片的过程就是一个复制的过程,我们使用了o(n)的空间,与题目要求不符。

我们只能使用一个o(1)的空间来临时存储数据,简单说,一次只能存储一个数字,但要向右移动k个位置。如果我们能找到一种算法,这个算法执行一次,只将数组向右移动1位,移动k个位置只需要执行这个算法k次就可以了。

考虑移动1位就简单了,用一个临时变量tmp将lst[-1]保存下来,然后从后向前,逐个向后移动,最后,将lst[0]赋值为tmp

tmp = lst[-1]

for i in range(len(lst)-1, 0, -1):

lst[i] = lst[i-1]

lst[0] = tmp

经过上面的算法,数组就从[1,2,3,4,5,6,7]变成了[7,1,2,3,4,5,6],如果希望将数组向右移动k个位置,只需要执行k次就可了

def move_ele_1(lst, k):

for j in range(k):

tmp = lst[-1]

for i in range(len(lst)-1, 0, -1):

lst[i] = lst[i-1]

lst[0] = tmp

if __name__ == '__main__':

lst = [1, 2, 3, 4, 5, 6, 7]

move_ele_1(lst, 3)

print(lst)

思路2, 原地翻转

将数组分为两个区域,第一个区域是从0到len(lst)-k-1, 余下的是第二个区域,两个区域分别做一次翻转,然后将整个数组做一次翻转,算法的过程如下

[1, 2, 3, 4, 5, 6, 7] 原始数据

[4, 3, 2, 1, 5, 6, 7] 第一个区域翻转

[4, 3, 2, 1, 7, 6, 5] 第二个区域翻转

[5, 6, 7, 1, 2, 3, 4] 整体翻转

一旦有了思路,算法就很容易写出来,但要注意处理边界条件

def reverse_lst(lst, start, end):

for i in range(0, (end-start)//2 1):

tmp = lst[start i]

lst[start i] = lst[end-i]

lst[end-i] = tmp

def move_ele_2(lst, k):

split_index = len(lst) - k - 1

reverse_lst(lst, 0, split_index)

print(lst)

reverse_lst(lst, split_index 1, len(lst)-1)

print(lst)

reverse_lst(lst, 0, len(lst)-1)

if __name__ == '__main__':

lst = [1, 2, 3, 4, 5, 6, 7]

move_ele_2(lst, 3)

print(lst)

7.23 合并文件

题目要求

已知一个列表里存储了若干个文件的名字

lst = ['1.txt', '2.txt', '3.txt']

请写程序,将列表里的文件内容合并到一个文件中,文件命名为'all.txt'

思路分析

写一个for循环,遍历列表lst,逐个打开文件,逐行读取文件里的信息,将读取的每一行数据写入到all.txt文件中,就是这么简单

示例代码

lst = ['1.txt', '2.txt', '3.txt']

f = open('all.txt', 'w')

for filename in lst:

r_file = open(filename)

for line in r_file:

f.write(line.strip() '\n')

r_file.close()

f.close()

7.24 拆分文件

题目要求

已知一个文件名为"all.txt",其内容为

2222

111

111

444

3333

6666

8888

请写程序拆分这个文件,文件里的内容,以1开头的,就写入到1.txt文件中,以2开头的内容,写入到2.txt文件中,依次类推

思路分析

打开文件,逐行读取文件内容,解析出一行内容的第一个字符,用第一个字符串拼接处要写入的文件名字,然后以a 方式打开文件,将这一行文件写入到文件中

示例代码

f = open('all.txt', 'r')

for line in f:

start = line[0]

filename = start ".txt"

with open(filename, 'a ') as w_file:

w_file.write(line.strip() "\n")

f.close()

8 地狱难度算法练习题

8.1 删除有序序列中的重复项

题目要求

已知一个有序序列,请原地删除序列中重复出现的元素,返回删除重复元素后的序列长度。

只能使用 o(1) 额外空间来完成这个任务,例如 [0,0,1,1,1,2,2,3,3,4,4,4,5],最终返回的长度是6, 序列前6个元素是 0 1 2 3 4 5

思路分析

已知条件如下:

序列有序

只能使用o(1)额外空间,必须原地删除

需要返回删除重复元素后的长度,如果长度为n,那么序列前n个元素没有重复元素

设置一个哨兵index,初始值赋为0。用一个for循环从索引1开始遍历lst,i做迭代变量, 如果lst[i]!=lst[index],就说明lst[i]是一个比lst[index]大的元素,它应该被放置在index 1的位置上

将lst[i] 放置在index 1位置上以后,要向右移动哨兵的位置,执行index = 1,这样,即便lst[i]这个值在后面重复出现了,可此时lst[index]=lst[i],所以重复出现的值会被忽略掉,直到遇到一个与lst[index]不相等的元素,再次移动哨兵

示例代码

def remove_duplicate(lst):

index = 0

for i in range(1, len(lst)):

if lst[index] != lst[i]:

lst[index 1] = lst[i]

index = 1

return index 1

if __name__ == '__main__':

lst = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5]

index = remove_duplicate(lst)

print index

print lst[:index]

8.2 组合总数

题目要求

已知一个无重复元素的序列,给定一个目标数,找出序列中所有可以使数字和未目标数的组合。

序列中的元素可以被多次选用,不能出现重复的组合, 序列中的元素和目标数都是正整数。

例如序列 [2, 3, 5], 目标值为8, 最终的组合有

(2, 3, 3)

(3, 5)

(2, 2, 2, 2)

思路分析

编程不是拿着画笔随心所欲的在画板上涂抹,也不存在固定的方法帮你完成具体的问题,做练习题的目的是通过这些练习题锻炼你的思维,当你建立起编程的思维以后,你也就不在乎什么具体方法和套路,面对具体问题时,你将有能力进行分析。

当问题复杂无从下手时,你可以从问题的边界处入手,题目没有对组合里的元素个数做限制,那么你就先考虑组合里只有一个元素的情况,题目就变成了从序列中找到1个元素,这个元素的值等于目标元素,这样,问题不就变得简单了么

接下来考虑两个元素的情况,从序列中找到两个数,这两个数的和等于目标数target,先随便从序列中选定一个数,假设这个数是i, 那么接下来要做的就是从序列中找到1个元素且这个元素等于target - i

接下来思考三个元素的情况,从序列中找到三个数,这三个数的和等于目标数target,你可以先随便从序列中选定一个数,假设这个数是i,那么接下来要做的就是从序列中找到两个元素且这两个元素的和等于target - i

新的问题,总是转化为老的问题,而最老的那个问题,从序列中找到一个元素且这个元素的值等于目标值是非常容易解决的。

示例代码

# coding=utf-8

def combination_sum(lst, target):

combination_lst = []

for item in lst:

if item == target:

combination_lst.append([item])

elif item > target:

continue # 单个元素都大于target,这个元素放在哪个组合里,组合之和都必然比target大

else:

other = target - item

res_lst = combination_sum(lst, other) # 新问题转化成老问题

# res_lst 是list, 里面的元素还是list,且和等于other

for tmp_lst in res_lst:

tmp_lst.append(item) # 加上item后,组合之和等于target

combination_lst.extend(res_lst) # 所有组合都放在combination_lst

return combination_lst

def remove_duplicate(lst):

combination_set = set()

for item in lst:

item.sort() # 先排序

combination_set.add(tuple(item)) # list 没有hash值,不能放到set中

return combination_set

if __name__ == '__main__':

lst = [2, 3, 5]

res_lst = remove_duplicate(combination_sum(lst, 8))

for item in res_lst:

print(item)

8.3 不同的子序列(超出时间限制)

题目要求

给定一个字符串s和一个字符串t,计算s的子序列中t出现的次数。

一个串的子串是指该串的一个连续的局部,如果不要求连续,则可称为它的子序列。例如abcde, acd就是abcde的一个子序列

假设 s = "rabbbit", t = "rabbit",那么有 3 种可以从 s 中得到 "rabbit" 的方案。

(上箭头符号 ^ 表示选取的字母)

rabbbit

^^^^ ^^

rabbbit

^^ ^^^^

rabbbit

^^^ ^^^

思路分析

当分析问题遇到阻碍,我最喜欢从问题的边界处入手,因为边界的地方正是条件达到极值的时候,这时候,很容易就找出破绽。

t的首字母是r, 这个r恰好也是s的首字母,如果让s = "abbbitr" ,让r成为s的末尾字符,问题似乎一下子变得明朗起来,此时,s的任意子序列都不可能是“rabbit“, 因为s中r字符后的后面没有内容了,根本找不到”abbit“,顺着这个思路想下去,想从s的子序列中找到t,就必须满足s中,r的后面可以找到a,a的后面可以找到b,b的后面可以再找到一个b,b的后面可以找打一个i,i的后面可以找到t。

但这样找还是挺麻烦的,为何不把t中每个字符出现在s中的位置记录下来呢?r出现在0的位置上,b出现在2, 3, 4的位置上,用一个字典来保存t中字符在s中出现位置的信息:

{

'a': [

1

],

'i': [

5

],

'r': [

0

],

'b': [

2,

3,

4

],

't': [

6

]

}

t = "rabbit",上面已经得到每一个字符在s中的位置,i从0到5,根据字符的位置信息挑选t[i]在s中的的合适位置,比如r,它出现的位置信息是[0],只能挑选一个位置,但是b 的位置信息是[2, 3, 4] ,有三个位置可以挑选,需要注意的是,如果t[i]这个字符挑选了位置index,那么t[i 1]这个字符在挑选位置时就不能选小于等于index。假如s=”brabbbit“, 那么在选b的位置的时候,就不能要0这个位置,因为t中a在b的前面,a已经选了2这个位置,b选到0毫无意义,这样不能构成子序列。

分析到这里,就演变成了一个寻找排列组合的问题。

示例代码

# coding=utf-8

def num_sequence(source, target):

# 先得到target的每一个字符在source中出现的位置信息

index_dict = {}

for sub_item in target:

index_dict[sub_item] = []

for index, item in enumerate(source):

if sub_item == item:

index_dict[sub_item].append(index)

print(index_dict)

index_seq = get_num_sequence(target, 0, index_dict, -1)

print(index_seq)

def get_num_sequence(target, t_index, index_dict, s_index):

"""

:param target: 目标字符串

:param t_index: 目标字符在target中的位置

:param index_dict: 目标字符串中每个字符在source中的位置

:param s_index: 上一个目标字符在s中的位置

:return:

"""

item = target[t_index]

# 如果目标字符在s中不存在

if item not in index_dict:

return []

# 得到item在s中的位置信息

index_lst = index_dict[item]

seq_lst = []

for index in index_lst:

# 如果位置比上一个目标字符所选的位置靠前或相等,就不能选

if index <= s_index:

continue

# 如果目标字符已经是最后一个字符了

if t_index == len(target) - 1:

seq_lst.append([index])

else:

# 递归调用,寻找下一个目标字符可能的位置

num_seq = get_num_sequence(target, t_index 1, index_dict, index)

for lst in num_seq:

lst.insert(0, index)

seq_lst.append(lst)

return seq_lst

if __name__ == '__main__':

source = "aabdbaabeeadcbbdedacbbeecbabebaeeecaeabaedadcbdbcdaabebdadbbaeabdadeaabbabbecebbebcaddaacccebeaeedababedeacdeaaaeeaecbe"

target = "bddabdcae"

num_sequence(source, target)

8.4逆波兰表达式求值

题目要求

根据逆波兰表示法,求表达式的值。

比如 ["2", "1", " ", "3", "*"],对应到小学所学的四则运算表达式就是((2 1) * 3) 计算结果为9

["4", "13", "5", "/", " "] 所对应的四则运算表达式是 (4 (13 / 5)) = 6

现在请计算["10", "6", "9", "3", " ", "-11", "*", "/", "*", "17", " ", "5", " "] 的结果

思路分析

题目所要求计算的逆波兰表达式对应的四则运算表达式是((10 * (6 / ((9 3) * -11))) 17) 5

逆波兰表达式的计算,其实是栈这种数据结构的经典应用,将逆波兰表达式中的元素逐一放入一个栈中,当遇到运算符时,则从栈顶连续弹出两个元素进行计算,然后把计算结果放入到栈中,最后,栈里只有保存一个元素,这个元素就是整个表达式的计算结果。

因此这道题目,你需要实现一个简单的栈,好在有列表这种神器,栈的实现非常容易。

有一个比较坑的地方是python的除法,python中,采用的是向下取整的办法,比如

5/3 = 1.666 向下取整得到1

5/-3 = -1.6666 向下取整得到-2

其他语言中,5/-3会向上取整,就会得到-1, 这个是符合我们日常判断的,但python里却偏偏向下取整得到了-2,为了使结果符合人们的常识,需要用到operator 模块的truediv 方法。

示例代码

# coding=utf-8

import operator

class stack(object):

def __init__(self):

self.items = []

self.count = 0

def push(self, item):

"""

放入一个新的元素

:param item:

:return:

"""

self.items.append(item)

self.count = 1

def top(self):

# 获得栈顶的元素

return self.items[self.count-1]

def size(self):

# 返回栈的大小

return self.count

def pop(self):

# 从栈顶移除一个元素

item = self.top()

del self.items[self.count-1]

self.count -= 1

return item

def cal_exp(expression):

stack = stack()

for item in expression:

if item in " -*/":

# 遇到运算符就从栈里弹出两个元素进行计算

value_1 = stack.pop()

value_2 = stack.pop()

if item == '/':

res = int(operator.truediv(int(value_2), int(value_1)))

else:

res = eval(value_2 item value_1)

# 计算结果最后放回栈,参与下面的计算

stack.push(str(res))

else:

stack.push(item)

res = stack.pop()

return res

if __name__ == '__main__':

print(cal_exp(["10", "6", "9", "3", " ", "-11", "*", "/", "*", "17", " ", "5", " "]))

8.5 最长公共前缀

题目要求

编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ""。

示例1:

输入: ["flower","flow","flight"]

输出: "fl"

示例2:

输入: ["dog","racecar","car"]

输出: ""

思路分析

以列表中的第一个单词作为基线,其余的单词逐个字符与第一个单词的字符进行比较,比如以flower做为基线,flower第一个字符是f,那么其余的单词的第一个字符也是f,就将这个f记录下来,逐一比较,直到某个位置上的字符出现不一致的情况。

在比较过程中,要注意单词的长度,如果某个单词已经比较到末尾,那么就可以停止了,因为这个单词的长度就是理论上可能的最大公共前缀

示例代码

# coding=utf-8

def get_max_prefix(lst):

if len(lst) == 0:

return ""

base_word = lst[0]

prefix_lst = []

for index, item in enumerate(base_word):

b_common = false # 标识在index位置上,所有单词的字符是否相同

for word in lst:

# index已经超过了单词的长度

if index >= len(word):

break

# 在index这个位置上,字符不相同

if word[index] != item:

break

else:

# 如果for循环没有被break中断,就会进入到这个语句块

b_common = true

if not b_common:

break

prefix_lst.append(item)

return "".join(prefix_lst)

if __name__ == '__main__':

lst = ["flower", "flow", "flight"]

print(get_max_prefix(lst))

8.6 最小区间(超出时间限制)

题目要求

已知k 个升序排列的整数数组。找到一个最小区间,使得 k 个列表中的每个列表至少有一个数包含在其中

示例:

输入:[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]

输出: [20,24]

解释:

列表 1:[4, 10, 15, 24, 26],24 在区间 [20,24] 中。

列表 2:[0, 9, 12, 20],20 在区间 [20,24] 中。

列表 3:[5, 18, 22, 30],22 在区间 [20,24] 中。

思路分析

列表里有k个元素,这些元素都是列表,下面的分析中,把这k个列表称之为小列表,外层的存储小列表的称之为大列表(big_lst)。题目要求找到一个最小的区间,是的这k个列表中的每个列表至少有一个数包含其中。

我们先随便定义一个区间,比如说[9, 18], 怎么判断这k个列表里每个列表都有元素包含其中呢?这需要遍历每一个列表,列表里的元素只要有一个在9到18之间就可以了。可是这样的遍历好麻烦,因为列表有多个,何不考虑把这k个列表合并成一个呢,这样就只有一个列表存在,寻找区间就不需要对每个列表都检查了。

但是合并区间带来一个新的问题,合并以后,对于一个数,你不知道这个数来自于哪个列表,因此,合并的过程,需要记录每一个数都在哪个列表中出现过,可以使用一个字典(index_dict),用数值做key,value设置为set,存入小列表在大列表中的索引。

经过上面两步分析,可以得到一个合并后的列表,且知道列表中的每个数在哪个小列表中出现过。

接下来就是寻找区间,还是老办法,考虑极值或边界情况,假设合并列表的第一个元素(item)就是最小区间开始的位置,那么只要解决结束位置就好了,要记住,每个元素曾经在哪个小列表中出现过是有记录的,此时可以查看第一个元素在小列表中出现的情况,如果len(index_dict[item]) 和 len(big_lst)相等,就可以证明,item在每个小列表中都出现过。这样最小区间就是[item, item]。

如果len(index_dict[item]) 和 len(big_lst) 不相等,就看item的下一个元素(next),看它有没有可能是最小区间结束的位置,方法也很简单,把index_dict[item] 和 index_dict[next]做union操作,假设结果为index_set,只要len(index_set) == len(big_lst),那么next就是最小区间结束的位置。如果len(index_set) != len(big_lst)呢,没关系,继续查看下一个,不停的执行index_set = index_dict[item].union(index_dict[next]), 一旦len(index_set) == len(big_lst) 成立,就找到了最小区间的结束位置。

前面的分析,是建立在合并列表的第一个元素是最小区间的起始元素的基础上,依靠这个边界条件,理清的思路,接下来要推广到合并列表的每一个元素,遍历合并列表,并假设当前遍历到的元素就是最小区间的起始元素,然后寻找最小区间结束的元素。

示例代码

# coding=utf-8

def get_small_range(lst):

index_dict = {} # 记录每一个数在哪个列表中出现过

merge_lst = [] # 把所有序列合并到一起

for index, item in enumerate(lst):

for number in item:

index_dict.setdefault(number, set([]))

index_dict[number].add(index)

merge_lst.extend(item)

# 合并以后要排序

merge_lst.sort()

small_range = none

small_range_lst = []

for index, item in enumerate(merge_lst):

# 获得item 都在哪些列表里出现

index_set = index_dict[item]

if len(index_set) == len(lst):

# 如果item在所有列表里都出现过,直接返回

return [item, item]

else:

# 把item作为区间开始的位置,下面的for循环去寻找区间结束的位置

for i in range(index 1, len(merge_lst)):

next = merge_lst[i]

index_set = index_set.union(index_dict[next])

# 从item 到 next, 这个范围内每个列表至少有一个元素包含其中

if len(index_set) == len(lst):

# 记录范围最小的区间

if small_range is none or small_range > next - item:

small_range = next - item

small_range_lst = [item, next]

break

return small_range_lst

if __name__ == '__main__':

lst = [[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]

print(get_small_range(lst))

8.7森林中的兔子

题目要求

森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。

返回森林中兔子的最少数量

示例:

示例:

输入: answers = [1, 1, 2]

输出: 5

输入: answers = [10, 10, 10]

输出: 11

解题思路

这类编程题,考察的不是编码能力,而是思考能力。首先要明确一点,这些兔子不会撒谎,否则,就没有答案了。

当思考问题时感到无从下手,就考虑边界或极值情况,我们假设森林中所有兔子都是相同的颜色,而且都会告诉你有多少其他的兔子和自己有相同的颜色,那么这会是怎样的局面呢?

假设森林中有3只兔子,那么答案一定是[2, 2, 2],如果森林中有5只兔子,那么答案一定是[4, 4, 4, 4, 4]。当你限制了那些变化的条件,问题就变得清晰明了了,有n只兔子,就有n个答案,且答案一定是n-1,兔子是不会说谎的。

现在,来分析题目给的例子,[1, 1, 2],有兔子回答2,就说明有3只兔子是一样的颜色,只有一只兔子回答了,其他两只没有回答,有两只兔子回答了1,他们两个可能是相同的颜色,也可能是不同的颜色,题目要求算最少的数量,那就认为他们是相同的颜色吧,这样就是5只兔子。

如果答案是 [1, 1, 2, 2, 2, 2]呢,森林中最少有8只兔子,2个回答1的兔子是相同颜色,3个回答2的兔子是相同颜色,还有一只兔子回答2,这就说明还有两个兔子和这只兔子颜色相同,但是他们没有回答。

分析到这里,不难得出一个简单的结论,如果一只兔子回答n,那么森林中必然有n 1只兔子颜色相同,剩余的n只兔子可能来回答了,也可能没有来回答,假设都来回答,那就有n 1个答案为n,可是如果出现了n 2个兔子回答n,就说明又多出来n 1只兔子,多出来的这组兔子只有一只来回答了。

你需要做的是统计每个答案的个数,比如 [1, 1, 2, 2, 2, 2],回答情况如下

{

1: 2, # 回答1 的有2只兔子

2: 4 # 回答2 的有4只兔子

}

回答2,表明有3只兔子,但却有4只兔子回答2,用4除以3得1.33,这说明存在两组兔子,每组有3只颜色一样的兔子。

示例代码

# coding=utf-8

import math

def get_rabbit_count(answers):

answer_dict = {}

for item in answers:

answer_dict.setdefault(item, 0)

answer_dict[item] = 1

count = 0

for key, value in answer_dict.items():

# math.ceil向上取整, math.ceil(float(value)/(key 1)) 得到的是至少有几组兔子

# 有兔子回答key,那么就至少有key 1个兔子

count = math.ceil(float(value)/(key 1))*(key 1)

return int(count)

if __name__ == '__main__':

print(get_rabbit_count([1, 1, 2]))

print(get_rabbit_count([10, 10, 10]))

print(get_rabbit_count([1, 1, 2, 2, 2, 2]))

8.8最大子序和

一个列表里,都是整数,请到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

例如列表 [-2,1,-3,4,-1,2,1,-5,4], 其连续子数组[4,-1,2,1]的和最大为6.

思路分析

动态规划的算法,难与易只在一念之间,掌握了动态规划的精髓,代码轻易的就能写出,反之,则陷入到茫然之中。

动态规划的题目,其实,都可以用暴力破解,但真正的解法都非常的巧妙,说是巧妙,并不是投机取巧,而是掌握了动态规划的实质。

既然是动态,那么到底是什么在动呢?假设数组为k,令max_sum表示最大子数组之和,已知从k[i]到[j]的的和为pre_sum,暂且让max_sum = pre_sum,那么现在,我们要考虑是否应该让k[j 1]也加到这个子数组之中,多一个数,可能让max_sum更大哦。

如果pre_sum >=0 ,那么就让pre_sum = k[j 1],你一定会提出质疑,如果k[j 1]是负数,那么子数组之和不是更小了么?这里你忽略了,我已经让max_sum=pre_sum,所以我已经记录了最大值,pre_sum = k[j 1]之后,的确变小了,但是max_sum还是之前的那个最大值,之所以要加k[j 1],因为k[j 2]有可能是一个很大的正数啊,所以要继续探索可能的最大子数组之和。那么假如k[j 2]也是负数呢,而且是很大的负数,以至于加上k[j 2]之后,pre_sum<0, 如果这样的事情发生,就按下面的方法操作

如果pre_sum < 0,不论k[j 1]是正还是负,k[j 1]加上pre_sum以后所得到的和都一定比k[j 1]更小,而我们要的是最大子序之和,所以这时,应该让max_sum等于pre_sum和k[j 1]中最大的那个,同时,让pre_sum = k[j 1],表示重新开始寻找和最大的子数组,如果不重新开始,带着pre_sum这个负数,难道对求和不是一个负面效果么。

谁在动呢,是pre_sum一直在动,我们规划的是一个子数组,期初,这个子数组里只有一个元素,就是数组的第一个元素k[0],随后就是考虑要不要把k[1]加进来,是否加进来,就按照上面的说的方法来进行。

示例代码

# coding=utf-8

def max_sub_sum(lst):

max_sum = lst[0]

pre_sum = lst[0] # pre_sum是动态的,最初等于列表的第一个元素

for i in range(1, len(lst)):

# 前面的累积和如果小于0,当前值item加上一个负数只会比item更小

# 因此将item赋值给pre_sum

if pre_sum < 0:

pre_sum = lst[i]

else:

# 前面的累积和是整数或者0,继续累加

pre_sum = lst[i]

if pre_sum > max_sum:

max_sum = pre_sum

return max_sum

if __name__ == "__main__":

print max_sub_sum([-2, 1, -3, 4, -1, 2, 1, -5, 4])

小结

既然是动态规划,就要找到那个变化的点,就这道题目而言,变化的点就是连续子数组之和小于0了,这个时候就必须从新开始寻找了,因为这个和已经是负数了,就如同一个包袱,就算后面的数都是正数,加上一个负数也终究比都是整数要小。

8.8 简单的计算器

题目要求

实现一个简单的计算器,能够计算简单字符串表达式,表达式可以包括小括号,运算符包含 - * /, 表达式允许有空格,参与运算的数值都是正整数。

示例1

输入: "1 2"

输出: 3

示例2

输入:" 2 - 3 2 "

输出: 1

示例3

输入:"(1 (4 5 3)-3) (9 8)"

输出: 27

示例4

输入:"(1 (4 5 3)/4-3) (6 8)*3"

输出: 43

思路分析

1 表达式预处理

万事开头难,先不考虑如何计算,我们应该先对表达式进行处理,处理以后,只有数值和运算符,这样才能对他们进行具体的操作,比如"1 2" 处理后得到['1', ' ', '2'], 运算符和数值都分离开了。

这样的解析并不复杂,只需要遍历字符串,解析出数值部分放入到列表中,遇到小括号或者运算符则直接放入列表中,代码如下:

def exp_to_lst(exp):

lst = []

start_index = 0 # 数值部分开始位置

end_index = 0 # 数值部分结束位置

b_start = false

for index, item in enumerate(exp):

# 是数字

if item.isdigit():

if not b_start: # 如果数值部分还没有开始

start_index = index # 记录数值部分开始位置

b_start = true # 标识数值部分已经开始

else:

if b_start: # 如果数值部分已经开始

end_index = index # 标识数值部分结束位置

b_start = false # 标识数值部分已经结束

lst.append(exp[start_index:end_index]) # 提取数值放入列表

if item in (' ', '-', '*', '/', '(', ')'): # 运算符直接放入列表

lst.append(item)

if b_start: # 数值部分开始了,但是没有结束,说明字符串最后一位是数字,

lst.append(exp[start_index:])

return lst

def test_exp_to_lst():

print exp_to_lst("1 2")

print exp_to_lst(" 2 - 3 2 ")

print exp_to_lst("(1 (4 5 3)-3) (9 8)")

print exp_to_lst("(1 (4 5 3)/4-3) (6 8)*3")

test_exp_to_lst()

程序输出结果为

['1', ' ', '2']

['2', '-', '3', ' ', '2']

['(', '1', ' ', '(', '4', ' ', '5', ' ', '3', ')', '-', '3', ')', ' ', '(', '9', ' ', '8', ')']

['(', '1', ' ', '(', '4', ' ', '5', ' ', '3', ')', '/', '4', '-', '3', ')', ' ', '(', '6', ' ', '8', ')', '*', '3']

2 中序转后序

1 2 这种表达式是中序表达式,运算符在运算对象的中间,还有一种表达式,运算符在运算对象的后面,称之为后序表达式,也叫逆波兰表达式。1 2 转成后序表达式后是 1 2 , 号作用于它前面的两个运算对象。

后序表达式相比于中序表达式更容易计算,因此,这一小节,我要把中序表达式转换成后序表达式。

转换时要借助栈这个数据结构,变量postfix_lst 表示后序表达式,遍历中序表达式,根据当前值进行处理:

如果遇到数值,则放入到postfix_lst中

遇到( 压如栈中

遇到 ),将栈顶元素弹出并放入到postfix_lst中,直到遇到(,最后弹出(

遇到运算符,把栈顶元素弹出并放入到postfix_lst中,直到栈顶操作符的运算优先级小于当前运算符,最后将当前运算符压入栈

代码如下:

# 运算优先级

priority_map = {

' ': 1,

'-': 1,

'*': 2,

'/': 2

}

class stack(object):

def __init__(self):

self.items = []

self.count = 0

def push(self, item):

"""

放入一个新的元素

:param item:

:return:

"""

self.items.append(item)

self.count = 1

def top(self):

# 获得栈顶的元素

return self.items[self.count-1]

def size(self):

# 返回栈的大小

return self.count

def pop(self):

# 从栈顶移除一个元素

item = self.top()

del self.items[self.count-1]

self.count -= 1

return item

def infix_exp_2_postfix_exp(exp):

"""

中序表达式转后序表达式

"""

stack = stack()

exp_lst = exp_to_lst(exp)

postfix_lst = []

for item in exp_lst:

# 如果是数值,直接放入到postfix_lst 中

if item.isdigit():

postfix_lst.append(item)

elif item == '(':

# 左括号要压栈

stack.push(item)

elif item == ')':

# 遇到右括号了,整个括号里的运算符都输出到postfix_lst

while stack.top() != '(':

postfix_lst.append(stack.pop())

# 弹出左括号

stack.pop()

else:

# 遇到运算符,把栈顶输出,直到栈顶的运算符优先级小于当前运算符

while stack.size() != 0 and stack.top() in (" -*/")\

and priority_map[stack.top()] >= priority_map[item]:

postfix_lst.append(stack.pop())

# 当前运算符优先级更高,压栈

stack.push(item)

# 最后栈里可能还会有运算符

while stack.size() != 0:

postfix_lst.append(stack.pop())

return postfix_lst

print infix_exp_2_postfix_exp("1 2")

print infix_exp_2_postfix_exp(" 2 - 3 2 ")

print infix_exp_2_postfix_exp("(1 (4 5 3)-3) (9 8)")

print infix_exp_2_postfix_exp("(1 (4 5 3)/4-3) (6 8)*3")

程序输出结果为

['1', '2', ' ']

['2', '3', '-', '2', ' ']

['1', '4', '5', ' ', '3', ' ', ' ', '3', '-', '9', '8', ' ', ' ']

['1', '4', '5', ' ', '3', ' ', '4', '/', ' ', '3', '-', '6', '8', ' ', '3', '*', ' ']

3 后序表达式计算

后续表达式计算同样需要用到栈,这个算法在逆波兰表达式计算的练习题中已经有讲解,直接复用代码

def cal_exp(expression):

stack = stack()

for item in expression:

if item in " -*/":

# 遇到运算符就从栈里弹出两个元素进行计算

value_1 = stack.pop()

value_2 = stack.pop()

if item == '/':

res = int(operator.truediv(int(value_2), int(value_1)))

else:

res = eval(value_2 item value_1)

# 计算结果最后放回栈,参与下面的计算

stack.push(str(res))

else:

stack.push(item)

res = stack.pop()

return res

全部代码

# coding=utf-8

import operator

# 运算优先级

priority_map = {

' ': 1,

'-': 1,

'*': 2,

'/': 2

}

class stack(object):

def __init__(self):

self.items = []

self.count = 0

def push(self, item):

"""

放入一个新的元素

:param item:

:return:

"""

self.items.append(item)

self.count = 1

def top(self):

# 获得栈顶的元素

return self.items[self.count-1]

def size(self):

# 返回栈的大小

return self.count

def pop(self):

# 从栈顶移除一个元素

item = self.top()

del self.items[self.count-1]

self.count -= 1

return item

# 表达式中序转后序

def infix_exp_2_postfix_exp(exp):

"""

中序表达式转后序表达式

"""

stack = stack()

exp_lst = exp_to_lst(exp)

postfix_lst = []

for item in exp_lst:

# 如果是数值,直接放入到postfix_lst 中

if item.isdigit():

postfix_lst.append(item)

elif item == '(':

# 左括号要压栈

stack.push(item)

elif item == ')':

# 遇到右括号了,整个括号里的运算符都输出到postfix_lst

while stack.top() != '(':

postfix_lst.append(stack.pop())

# 弹出左括号

stack.pop()

else:

# 遇到运算符,把栈顶输出,直到栈顶的运算符优先级小于当前运算符

while stack.size() != 0 and stack.top() in (" -*/")\

and priority_map[stack.top()] >= priority_map[item]:

postfix_lst.append(stack.pop())

# 当前运算符优先级更高,压栈

stack.push(item)

# 最后栈里可能还会有运算符

while stack.size() != 0:

postfix_lst.append(stack.pop())

return postfix_lst

def exp_to_lst(exp):

"""

表达式预处理,转成列表形式

"""

lst = []

start_index = 0 # 数值部分开始位置

end_index = 0 # 数值部分结束位置

b_start = false

for index, item in enumerate(exp):

# 是数字

if item.isdigit():

if not b_start: # 如果数值部分还没有开始

start_index = index # 记录数值部分开始位置

b_start = true # 标识数值部分已经开始

else:

if b_start: # 如果数值部分已经开始

end_index = index # 标识数值部分结束位置

b_start = false # 标识数值部分已经结束

lst.append(exp[start_index:end_index]) # 提取数值放入列表

if item in (' ', '-', '*', '/', '(', ')'): # 运算符直接放入列表

lst.append(item)

if b_start: # 数值部分开始了,但是没有结束,说明字符串最后一位是数字,

lst.append(exp[start_index:])

return lst

def cal_exp(expression):

"""

计算后续表达式

"""

stack = stack()

for item in expression:

if item in " -*/":

# 遇到运算符就从栈里弹出两个元素进行计算

value_1 = stack.pop()

value_2 = stack.pop()

if item == '/':

res = int(operator.truediv(int(value_2), int(value_1)))

else:

res = eval(value_2 item value_1)

# 计算结果最后放回栈,参与下面的计算

stack.push(str(res))

else:

stack.push(item)

res = stack.pop()

return res

def test_exp_to_lst():

print exp_to_lst("1 2")

print exp_to_lst(" 2 - 3 2 ")

print exp_to_lst("(1 (4 5 3)-3) (9 8)")

print exp_to_lst("(1 (4 5 3)/4-3) (6 8)*3")

def test_infix_exp_2_postfix_exp():

print cal_exp(infix_exp_2_postfix_exp("1 2"))

print cal_exp(infix_exp_2_postfix_exp(" 2 - 3 2 "))

print cal_exp(infix_exp_2_postfix_exp("(1 (4 5 3)-3) (9 8)"))

print cal_exp(infix_exp_2_postfix_exp("(1 (4 5 3)/4-3) (6 8)*3"))

if __name__ == '__main__':

test_infix_exp_2_postfix_exp()

8.9最长上升子序列

题目要求

一个元素为数值的列表,找到其最长上升子序列的长度。

比如 [5, 4, 1, 2, 5, 3], 最长上升子序列是 [1, 2, 3], 长度为3。

思路分析

假设列表lst长度为k,创建一个长度同样为k的列表dp,dp内所有元素初始化为1,dp[i]代表以lst[i]结尾的最长上升子序列长度,这其实是一个假设,对于单个元素来说,也是列表的子序列,而且是上升的。

对于lst[0]来说,它自己就是一个子序列,单个元素,也可以视为上升的,因此,dp[0] 等于1,真实的表示了以lst[0]结尾的最长上升子序列的长度,但对于lst[j], j >0 来说,dp[j]就目前而言,还不能准确表示以lst[j]结尾的最长上升子序列的长度,不过没关系,计算dp[1]时,我们可以借助dp[0],计算dp[2]时,可以借助dp[0],dp[1],计算dp[j]时,可以借助dp[0]到dp[j-1]。

计算dp[j]时,如何借助之前已经计算出来的dp[0]到dp[j-1]呢,太简单了,假设 0<=i

示例代码

# coding=utf-8

def get_long_incr_lst(lst):

if len(lst) == 0:

return 0

dp = [1 for item in lst]

max_incr = 1

# 为什么要从1 开始呢,因为dp[0]是固定的,一定是1

for j in range(1, len(lst)):

for i in range(j):

if lst[i] < lst[j]:

# 以lst[i]结尾的上升子序列里可以加入lst[j]

dp[j] = max(dp[j], dp[i] 1)

max_incr = max(dp[j], max_incr)

return max_incr

print get_long_incr_lst([5, 4, 1, 2, 5, 3])

8.10 山脉数组的顶峰索引

题目要求

如果一个数组k符合下面两个属性,则称之为山脉数组

数组的长度大于等于3

存在i,i >0 且 i < len(k)-1, 使得k[0] < k[1]< ... < k[i-1] < k[i] > k[i 1] ... >k[len(k)-1], 这个i就是顶峰索引。

现在,给定一个山脉数组,求顶峰索引。

输入: [0, 1, 3, 5, 4, 3, 2]

输出: 3

思路分析

遍历数组,每个当前元素都和自己右侧的元素比较,如果当前元素大于右侧的元素,则当前这个元素的索引就是山脉数组的顶峰索引

示例代码

# coding=utf-8

def get_top_index(lst):

# 注意起始位置和结束位置

for i in range(1, len(lst)-1):

if lst[i] > lst[i 1]:

return i

if __name__ == '__main__':

lst = [0, 1, 3, 5, 4, 3, 2]

print get_top_index(lst)

使用二分查找法

上面的算法虽然很简单,但效率并不高,可以使用二分查找法获得更快的速度。二分查找法利用了数组的有序性,山脉数组虽然不是有序的,但是峰顶前和峰顶后却各自有序,前者是升序,后者是降序,那么同样可以利用二分查找法进行查找

代码如下:

# coding=utf-8

def get_top_index(lst, start, end):

# 中间位置

middle = (start end)/2

# 恰好是峰顶

if lst[middle] > lst[middle-1] and lst[middle] > lst[middle 1]:

return middle

# 还没有到达峰顶

if lst[middle] < lst[middle 1]:

return get_top_index(lst, middle 1, end)

elif lst[middle] > lst[middle 1]: # 已经过了峰顶

return get_top_index(lst, start, middle-1)

if __name__ == '__main__':

lst = [0, 1, 3, 5, 4, 3, 2, 1]

print get_top_index(lst, 0, len(lst)-1)

8.11 两个有序数组中找第k大的数

题目要求

已知有两个从小到大的有序数组,求两个数组的第k大的数。

[1, 4, 6, 8, 12, 15, 18, 20, 28, 29]

[2, 5, 7, 10]

第8大的数是10

思路分析

两个数组都有序,那么就利用这个有序的特点来解决这个问题。假设数组分别是a b,令middle = k/2, middle_ex = k - middle。比较a[middle]和b[middle]的值。

如果a[middle - 1] == b[middle_ex - 1],那么a[middle-1]不正好是第k大的数么,因为 k= middle_ex middle,且两个数组都有序。

如果a[middle - 1] < b[middle_ex - 1],让a = a[middle:],前面的那些元素都可以舍弃了, 问题转变成从a 和 b这两个数组里找到第 k - middle 大的值

如果a[middle - 1] > b[middle_ex - 1],让b = b[middle_ex:],前面那些元素都可以舍弃了,问题转变成从a 和 b这两个数组里找到第 k - middle_ex大的值

为什么在取值时用的索引是middle - 1呢,其实原因很简单,我们要找第k大的数,k最小是1,你不能说取第0大的数,我们日常是从1开始计数的,而计算机是从0开始计数的,middle = k/2, 从k计算而来,因此在使用索引时要减 1 。

有几个需要关注的地方

要让数组长度更小的为a

计算middle时,其实要考虑middle是否比a的长度小,不然取a[middle-1]时就出错了,计算middle和 middle_ex为的是从a, b 两个数组里各自找到第middle大和第middle_ex大的两个数,通过比较他们的大小,决定舍弃哪一部分

不断的舍弃,不断的修改k的值,最后,一定会出现k==1的情况,这时,返回min(a[0], b[0])

示例代码

# coding=utf-8

def find_kth(left_lst, left_len, right_lst, right_len, k):

"""

从left_lst 和 right_lst中寻找第k大的数

:param left_lst: 长度小的那个数组

:param left_len:

:param right_lst: 长度达的那个数组

:param right_len:

:param k:

:return:

"""

# 确保left_lst长度小于 right_lst 长度

if left_len > right_len:

return find_kth(right_lst, right_len, left_lst, left_len, k)

# 长度小的数组已经没有值了,从right_lst找到第k大的数

if left_len == 0:

return right_lst[k-1]

# 找到第1 大的数,比较两个列表的第一个元素,返回最小的那个

if k == 1:

return min(left_lst[0], right_lst[0])

# k >> 1 ,其实就是k/2

middle = min(k >> 1, left_len)

middle_ex = k - middle

# 舍弃left_lst的一部分

if left_lst[middle-1] < right_lst[middle_ex-1]:

return find_kth(left_lst[middle:], left_len-middle, right_lst, right_len, k-middle)

# 舍弃right_lst 的一部分

elif left_lst[middle-1] > right_lst[middle_ex-1]:

return find_kth(left_lst, left_len, right_lst[middle_ex:], right_len-middle_ex, k-middle_ex)

else:

return left_lst[middle-1]

if __name__ == '__main__':

left_lst = [1, 4, 6, 8, 12, 15, 18, 20, 28, 29]

right_lst = [2, 5, 7, 10]

k = 8

print find_kth(left_lst, len(left_lst), right_lst, len(right_lst), k)

# 合并后排序,找第k大的数

lst = left_lst right_lst

lst.sort()

print lst[k-1]

8.12 搜索二维矩阵

题目要求

已知一个矩阵,有以下特点:

每行的元素从左到右是升序的

每列的元素从上到下是升序的

示例如下

matrix = [

[1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30]

]

请编写一个高效的算法搜索目标值target

思路分析

每行数据和每列数据都是升序的,但行与行之间并没有升序关系,第二行的数据并不是都比第一行大。因此,搜索数据时,必须从第一行开始进行搜索。

搜索某一行时,由于数据有序,因此可以轻松的找到最小值和最大值

如果最小值比target大,可以确定整个矩阵里都没有目标值

如果最大值比target小,说明这一行里肯定不存在目标值。

如果target>= min and target <= max,就在这一行里进行查找,关键之处在于,如果这一行里没有找到目标值,还要继续去下一行里查找么?答案是肯定的,比如你想找5,第一行里没有找到,但是第二行里却可以找得到,而且,你无法跳过第一行直接查找第二行,因为第一行里可能有5

前面的三点分析,已经让搜索算法非常高效了,接下来要考虑如何高效的在一行数据里查找目标值,由于每一行数据是有序的,因此可以使用二分查找法,二分查找法已经非常高效了,但是由于每一列从上到下也是升序的,因此,可以对二分查找法稍稍做一点改变,就可以让整个的查找速度更快。

如果二分查找法在找不到目标值时,返回第一个比目标值大的元素的索引,那么,这个索引就可以作为下一次查找时结束位置的边界,比如搜索9,对第一行使用二分查找法搜索时没有找到目标值,但是找到了第一个比9大的元素11,索引为3,由于每一列都是升序的,所以搜索第二行时,不需要搜索整行,只需要搜索0到2这个索引范围就可以了。通过对二分查找法小做修改,就使得之后的每一行搜索范围得以缩小,效率更高。

示例代码

def binary_search(lst, start, end, target):

"""

如果目标值存在,则返回目标值索引和下一个位置

如果目标值不存在,则返回第一个比目标值大的元素的索引

如果最大值比目标值还小,则返回整行的长度

:param lst:

:param start:

:param end:

:param target:

:return:

"""

if start > end:

return -1, start 1

middle = (start end)//2

if lst[middle] == target:

return middle, middle 1

elif lst[middle] > target:

return binary_search(lst, start, middle-1, target)

else:

return binary_search(lst, middle 1, end, target)

def search_matrix(matrix, target):

if len(matrix) == 0:

return 0

if len(matrix[0]) == 0:

return false

end_index = len(matrix[0]) -1

for lst in matrix:

min_value = lst[0]

max_value = lst[-1]

if target < min_value:

return false # 此处可以直接返回false

if target > max_value:

continue # 目标值比这一行最大值还大,去下一行查找

target_index, end_index = binary_search(lst, 0, end_index, target)

end_index -= 1 # 下一次搜索时结束的位置

if target_index >= 0:

return true

return false

if __name__ == '__main__':

matrix = [

[1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30]

]

print(search_matrix(matrix, 6))

print(search_matrix(matrix, 16))

print(search_matrix(matrix, 20))

print(search_matrix([[1]], 1))

8.13 判断子序列

题目要求

给定字符串 s 和 t ,判断 s 是否为 t 的子序列

你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)

示例 1:

s = "abc", t = "ahbgdc"

返回 true.

示例 2:

s = "axc", t = "ahbgdc"

返回 false

思路分析

一种思路是从t中寻找长度和s相同的子序列,然后判断这些子序列中有没有和s相等的子序列。这虽然是一个可行的方案,但显然效率很差。

另一个思路是先对t进行分析,遍历t获得每一个字符的出现位置,最终将得到一个字符分布的信息,例如“ahbgdc”, 它的字符分布情况是

{

'a': [0],

'b': [2],

'c': [5],

'd': [4],

'g': [3],

'h': [1]

}

得到这些字符分布情况后,就可以根据每个字符的所在位置来判断字符串s是否是t的子序列,假设a出现的位置都大于b出现的位置,那么字符串s一定不是字符串t的子序列,每个字符可以出现在很多个位置上,我们只要找到一个位置满足s是t的子序列就可以了。

以"abc" 为例,先找到a出现的位置,不论有多少个,只取第一个,记为pre_index,因为a的位置越靠前,留给bc的空间就越大,那么接下来从出现的位置中寻找第一个比pre_index大的位置并赋值给pre_index,为什么要找第一个,因为b的位置越靠前,留给c的空间就越大,最后从c的位置找到第一个比pre_index大的位置

示例代码

def is_sub_seq(s, t):

char_info = get_char_info(t)

pre_index = -1

for item in s:

# 如果t中不包含item这个字符

index_lst = char_info.get(item)

if index_lst is none:

return false

for index in index_lst:

# pre_index是上一个字符可以出现的位置

# 当前字符出现的位置中,找第一个比pre_index大的位置

if index > pre_index:

pre_index = index

break

else:

# 如果循环正常退出

return false

return true

def get_char_info(t):

info = {}

for index, item in enumerate(t):

info.setdefault(item, [])

info[item].append(index)

return info

if __name__ == '__main__':

print(is_sub_seq("abc", "ahbgdc"))

8.14 最长重复子数组

题目要求

给两个整数数组 a 和 b ,返回两个数组中公共的、长度最长的子数组的长度。

输入:

a: [1,2,3,2,1]

b: [3,2,1,4,7]

输出: 3

题目分析

这个题目本质上就是最长公共子串算法,使用动态规划算法就可以轻松解决。

假设a[i] == b[j], 这时,我们不去考虑a[i 1]好b[j 1]的关系,而是考虑a[i-1]和b[j-1]的关系。动态规划,总是依据前面的结果来计算当前的结果。

那么要依据前面的什么结果呢?假设a[i]和b[j]是最长公共子串的结尾处,那么我们用dp[i 1][j 1]记录这个子串的长度。 现在,请考虑dp[i][j]表达的含义是什么呢? 它表示以a[i-1]和b[j-1]结尾的公共子串的长度,且dp[i][j] 1 = dp[i 1][j 1]。

为什么要用dp[i 1][j 1]来记录以a[i]和b[j]结尾的公共子串的长度呢?看起来,下角标不一致,感觉怪怪的。

之所以这样做,是因为动态规划总是用前面的结果来计算当前的结果。当我们计算dp[i 1][j 1]时,需要用到dp[i][j],i和j都是从0开始的。当我们考虑a[0]和b[0]的关系时,我们想要计算的是dp[1][1],这时,我们就可以利用dp[0][0],如果用dp[0][0]表示以a[0],b[0]结尾的公共子串的长度,那么我们就不得不利用dp[-1][-1] 1来计算dp[0][0],但是dp[-1][-1]并不存在。

因此,dp这个二维矩阵的第一行和第一列都设置为0,如此,就可以完全使用dp[i][j] 1 = dp[i 1][j 1] 这个公式来进行计算,如下图所示

最大公共子串?

示例代码

def find_max_lengh(lst_1, lst_2):

max_len = 0

dp = [[0 for i in range(len(lst_1) 1)] for j in range(len(lst_2) 1)]

for i in range(len(lst_1)):

for j in range(len(lst_2)):

if lst_1[i] == lst_2[j]:

dp[i 1][j 1] = dp[i][j] 1

if dp[i 1][j 1] > max_len:

max_len = dp[i 1][j 1]

return max_len

if __name__ == '__main__':

lst_1 = [1, 2, 3, 2, 1]

lst_2 = [3, 2, 1, 4, 7]

max_len = find_max_lengh(lst_1, lst_2)

print(max_len)

8.15 找到 k 个最接近的元素

题目要求

给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数

输入: [1, 5, 8, 9, 17, 20], k=4, x=10

输出: [5, 8, 9, 17]

思路分析

第一个大于等于目标值的元素位置

题目要求找到k个最接近目标值的元素,我们先不考虑k个,而是考虑1个的情况,也就是最接近目标值的那个元素。

如果数组里有某个元素恰好和目标值相等,那么问题就转变成了二分查找法,在数组中查找目标值。如果数组里没有目标值呢,如何找到距离目标值最近的元素呢?

不妨先找到第一个大于等于目标值的元素,找到了这个元素,也就容易找到距离目标值最近的那个元素了,分析到这里,我们先要实现一个函数,该函数可以从数组中找到第一个大于等于目标值的元素位置,下面是这个函数的示例代码

def find_eg_index(lst, start, end, target):

"""

找到第一个大于等于target的元素的位置, 如果lst中最大的元素小于target

则返回len(lst)

:param lst:

:param start:

:param end:

:param target:

:return:

"""

if start > end:

return end 1

middle = (start end)//2

middle_value = lst[middle]

if middle_value == target:

return middle

elif middle_value < target:

return find_eg_index(lst, middle 1, end, target)

else:

return find_eg_index(lst, start, middle-1, target)

一定要记得考虑边界条件,如果目标值比数组最小值还小,那么函数返回0是应当的,但如果目标值比数组中最大值还大,该返回什么呢?为了概念的完整性,我这里返回len(lst), 这个索引是超出数组范围的,这表示无穷大,无穷大当然大于等于target

距离目标值最近的元素位置

前面的find_eg_index函数返回了第一个大于等于target的元素的位置eg_index,在此基础上,很容易就算出来距离target最近的元素的位置,所要考虑的逻辑分支如下

eg_index == len(lst), target > max(lst), 数组最后一个元素最接近target

eg_index == 0, 数组第一个元素最接近target

target - lst[eg_index-1] <= lst[eg_index] - target, 说明lst[eg_index-1]更接近target, 反之lst[eg_index]更接近target

实现函数find_closest_index(lst, target) ,返回数组中距离target最近的元素的位置

def find_closest_index(lst, target):

"""

寻找距离target最近的位置

:param lst:

:param target:

:return:

"""

eg_index = find_eg_index(lst, 0, len(lst)-1, target)

if eg_index == len(lst):

return eg_index - 1

elif eg_index == 0:

return 0

else:

if target - lst[eg_index-1] <= lst[eg_index] - target:

return eg_index-1

else:

return eg_index

k个最接近的元素

在函数find_closest_index基础上继续思考,已经获得了closest_index, 只需要找到剩余的k-1个元素就可以了。

剩余的k-1个元素,一定分布在closest_index 的两侧,借鉴归并排序的思路,把closest_index 两侧的元素视为两个数组,分别从left_index(closest_index-1)和right_index(closest_index 1)开始进行遍历比较,如果lst[left_index] <= lst[right_index]则lst[left_index] 就是要找的那k-1个元素里的一个,此时left_index -= 1,游标向左滑动,继续进行比较

这里要考虑边界情况,如果left_index 超出了数组的索引范围,该如何比较呢,一侧超出了索引范围,剩余的最近元素一定集中在另一侧,此时,可以直接从另一侧数组里直接取剩余数量的元素,但我认为这样程序就会写的很复杂,要判断两侧的索引是否超出范围,要写很多if语句。

不弱这样处理,如果索引超出了范围,就认为这个索引上的元素是无穷大,这样就不需要判断左右两个索引是否超出范围以及取另一侧的剩余最近元素了。

示例代码

def find_closet_ele(lst, target, k):

closet_ele_lst = []

closest_index = find_closest_index(lst, target) # 距离target最近的元素的位置

closet_ele_lst.append(lst[closest_index])

ele_count = 1

left_index = closest_index - 1

right_index = closest_index 1

# 借鉴归并排序思路,向两侧滑动遍历

while ele_count < k:

left_ele = get_ele(lst, left_index)

right_ele = get_ele(lst, right_index)

# 哪边元素距离target更近,哪边就走一步

if target - left_ele <= right_ele - target:

closet_ele_lst.append(left_ele)

left_index -= 1

else:

closet_ele_lst.append(right_ele)

right_index = 1

ele_count = 1

closet_ele_lst.sort()

return closet_ele_lst

def get_ele(lst, index):

# 索引超出范围的,返回无穷大

if index < 0 or index >= len(lst):

return float("inf")

return lst[index]

完整代码

def find_closet_ele(lst, target, k):

closet_ele_lst = []

closest_index = find_closest_index(lst, target) # 距离target最近的元素的位置

closet_ele_lst.append(lst[closest_index])

ele_count = 1

left_index = closest_index - 1

right_index = closest_index 1

# 借鉴归并排序思路,向两侧滑动遍历

while ele_count < k:

left_ele = get_ele(lst, left_index)

right_ele = get_ele(lst, right_index)

# 哪边元素距离target更近,哪边就走一步,这里注意取绝对值

if abs(target - left_ele) <= abs(right_ele - target):

closet_ele_lst.append(left_ele)

left_index -= 1

else:

closet_ele_lst.append(right_ele)

right_index = 1

ele_count = 1

closet_ele_lst.sort()

return closet_ele_lst

def get_ele(lst, index):

# 索引超出范围的,返回无穷大

if index < 0 or index >= len(lst):

return float("inf")

return lst[index]

def find_closest_index(lst, target):

"""

寻找距离target最近的位置

:param lst:

:param target:

:return:

"""

eg_index = find_eg_index(lst, 0, len(lst)-1, target)

if eg_index == len(lst):

return eg_index - 1

elif eg_index == 0:

return 0

else:

if target - lst[eg_index-1] <= lst[eg_index] - target:

return eg_index-1

else:

return eg_index

def find_eg_index(lst, start, end, target):

"""

找到第一个大于等于target的元素的位置, 如果lst中最大的元素小于target

则返回len(lst)

:param lst:

:param start:

:param end:

:param target:

:return:

"""

if start > end:

return end 1

middle = (start end)//2

middle_value = lst[middle]

if middle_value == target:

return middle

elif middle_value < target:

return find_eg_index(lst, middle 1, end, target)

else:

return find_eg_index(lst, start, middle-1, target)

if __name__ == '__main__':

lst = [1, 5, 8, 9, 17, 20]

print(find_closet_ele(lst, 10, 4))

8.16 实现全排列算法

题目要求

给定数组,求数组的全排列

例如下面的数组

[1, 2, 3, 4]

它的全排列有24种:

[1, 2, 3, 4]

[1, 2, 4, 3]

...

[4, 1, 3, 2]

[4, 1, 2, 3]

思路分析

1、中学数学

这种排列组合有多少种,在中学时代就学过,4*3*2*1 = 24种排列组合。

第一位有4个选择,第一位确定后,第二位有3个选择,同理,第三位有2个选择,最后一位只有一个选择。

当我们用程序实现时,想要的不是排列组合的数量,而是要输出这些组合的内容,就不仅仅是一个算出一个数值那么简单。但算法归根结底还是数学问题,因此,我们可以回忆借鉴数学课上所学的方法,来考虑程序的算法逻辑。

2、递归算法

第一步,确定第一个位置的情况,你可以写一个循环,让每个元素都有一次机会放在第一个位置上

第二步,对于剩余的三个元素,问题转变成这3个元素有多少全排列情况,这就变成了递归

经过上面两步思考,我们大致有了这样的代码逻辑

def perm(lst, start, end):

for index in range(start, end):

lst[index], lst[start] = lst[start], lst[index]

perm(lst, start 1, end, com_all_lst)

lst = [1, 2, 3, 4]

perm(lst, 0, len(lst))

列表中每个元素都有机会成为第一个元素,剩余的元素递归做同样的事情。

3、终止条件

递归必须有终止条件,而且这个终止条件非常容易找到,start 和 end相等时,就表明没有什么元素需要经过变换位置来组成新的排列组合了。

不过到目前位置,我们还没有把这些排列组合记录下来,于是,有了下面的改进

import copy

def perm(lst, start, end, com_all_lst):

if start == end:

com_all_lst.append(copy.deepcopy(lst))

else:

for index in range(start, end):

lst[index], lst[start] = lst[start], lst[index]

perm(lst, start 1, end, com_all_lst)

lst = [1, 2, 3, 4]

com_all_lst = []

perm(lst, 0, len(lst), com_all_lst)

print(com_all_lst)

程序运行结果

[[1, 2, 3, 4], [1, 2, 4, 3], [1, 4, 2, 3],

[1, 4, 3, 2], [1, 2, 3, 4], [1, 2, 4, 3],

[2, 1, 4, 3], [2, 1, 3, 4], [2, 3, 1, 4], [2, 3, 4, 1],

[2, 1, 4, 3], [2, 1, 3, 4], [3, 1, 2, 4], [3, 1, 4, 2],

[3, 4, 1, 2], [3, 4, 2, 1], [3, 1, 2, 4], [3, 1, 4, 2], [2, 1, 4, 3],

[2, 1, 3, 4], [2, 3, 1, 4], [2, 3, 4, 1], [2, 1, 4, 3], [2, 1, 3, 4]]

竟然出现了一些重复的排列组合,看来程序的逻辑存在bug。

4、还原列表

问题出在这行代码上

lst[index], lst[start] = lst[start], lst[index]

每一次递归调用时,我们将元素的顺序进行了调整,注意看 [3, 1, 4, 2] 这个结果,这是3放到第一个位置时的组合之一,此时列表最后一个元素是2,还记得全排列的思路么,让每一个元素都有机会放在第一个位置上,这个逻辑对应到代码

for index in range(start, end):

期初,列表里的元素是 1 2 3 4 ,这个循环希望将1 2 3 4 都放在第一个位置上一次,但是当 [3, 1, 4, 2] 出现时,元素的位置已经发生变化,当index = 3 时, lst[index] = 2,这就导致了以2开头的全排列又被计算了一次,所以导致重复。

为了避免重复,我们需要将列表里的元素还原,每次递归调用结束后,将之前互换位置的元素再次互换位置,只需增加一行代码就可以

for index in range(start, end):

lst[index], lst[start] = lst[start], lst[index]

perm(lst, start 1, end, com_all_lst)

lst[index], lst[start] = lst[start], lst[index]

示例代码

import copy

def perm(lst, start, end, com_all_lst):

if start == end:

com_all_lst.append(copy.deepcopy(lst))

else:

for index in range(start, end):

lst[index], lst[start] = lst[start], lst[index]

perm(lst, start 1, end, com_all_lst)

lst[index], lst[start] = lst[start], lst[index]

lst = [1, 2, 3, 4]

com_all_lst = []

perm(lst, 0, len(lst), com_all_lst)

print(com_all_lst)

8.17 还原ip地址

题目要求

一个字符串,里面存储的是ip地址,但是.(点)被删除了,只剩下数字,请编写算法,还原这个ip地址,如果可以还原成多个,请逐一列出

输入: 192168119130

输出: ['192.168.119.130']

输入: 101224010

输出:['10.12.240.10', '10.122.40.10', '10.122.401.0',

'101.2.240.10', '101.22.40.10', '101.22.401.0',

'101.224.0.10']

输入: 101226010

输出: ['10.122.60.10', '101.22.60.10', '101.226.0.10']

思路分析

一个ip地址有四段,每段的范围是0~255,可以分四次从输入字符串中截取字符串,第一次截取时,必然是从字符串索引为0的位置开始,那么可以截取的长度是1, 2, 3。 这一段截取后,进行第二次截取,第二次截取的开始位置取决于第一次截取结束的位置,如果第一次截取的长度是2,那么第二次就要从索引为2的位置上开始截取,可以截取的长度是1, 2, 3, 第三次和第四次做同样的操作,这么一分析,你就应该想到用递归函数来做了。

需要考虑的情况是:

截取后的每一段,如果是以0开头,那么这一段只能是0,总不能出现10.21.01.23的ip地址吧,01是什么鬼

截取后的每一段,其值大小不能超过255

如果截取后剩余的部分长度超过剩余几段理论上的最大长度,那么这个截取就是不合理的,比如192168119130, 第一段只截取1,那么剩余部分92168119130 的长度是11,后面三段最长也就是9,所以这样截取是不合理的

如果截取后余下的部分长度是0,也是不合理的

如果截取后余下的部分长度比余下几段理论上的最小长度还小,也是不合理的,比如截取后余下部分长度是2,可是还有3段需要截取,这样就是不合理的

示例代码

# coding=utf-8

def restore_ip(ip):

retsection_lst = restore_ip_ex(ip, len(ip), 0, 4)

return ['.'.join(item) for item in retsection_lst]

def restore_ip_ex(ip, ip_len, start_index, k):

if k == 0:

return [[]]

if ip_len > 20 or ip_len < 4:

return []

section_lst = []

for i in range(1, 4):

# 如果截取后剩余的部分长度超过剩余几段理论上的最大长度,那么这个截取就是不合理的

# 如果剩余长度为0也是不合理的

rest_len = ip_len - i - start_index

if (rest_len == 0 and k != 1) or rest_len > (k-1)*3 or rest_len < k-1:

continue

section = ip[start_index:start_index i]

# 如果某段以0开头,那么这一段就是只能是0,否则就会出现1.012.240.10这种情况,012显然是不合理的

if section[0] == '0' and len(section) != 1:

continue

if int(section) > 255:

continue

# 截取下一段

res_lst = restore_ip_ex(ip, ip_len, i start_index, k-1)

for item in res_lst:

item.insert(0, section)

section_lst.extend(res_lst)

return section_lst

if __name__ == '__main__':

print restore_ip("192168119130")

print restore_ip("101224010")

print restore_ip("1111")

print restore_ip("101226010")

8.18亲密字符串

题目要求

有两个字符串,a和b,如果a字符串内部交换任意两个位置的字符就能够让a和b相等,就认为两个字符串是亲密字符串。

示例1

输入:a="cccb" ,b="cccb"

输出:true

解释: 任意两个c交换位置,都可以让a=b,他们是亲密字符串

示例2

输入:a="ccbcab", b="cccbab"

输出:true

解释:a内部交换a[2]和a[3]后,a=b,他们是亲密字符串

示例3

输入:a="ab", b="ab"

输出:false

解释:a字符串内部不论怎样交换,都不可能与b相同

思路分析

如果a==b成立,那么就必须满足,a中有某个字符出现了两次或以上,只有这样,才能满足交换两个字符后与b相等,这是示例1的情况

如果a!=b,满足亲密字符串的条件就是a与b有两处不相同,而且交换这两处不相同的字符后a==b成立,这是示例2 的情况

如果a b两个字符串的长度不相等,必然不是亲密字符串。

遍历两个字符串,统计相同索引字符不相同的次数,如果次数是0,那么就必须满足a字符串有某个字符出现了两次或以上,可以用一个集合来保存a中的字符,如过有某个字符出现了两次或以上,那么最终,集合的大小一定小于a字符串的长度。

如果不相同的次数是2,那么交错对比这两处字符,如果不相同次数既不是0也不是2,则一定不是亲密字符串

示例代码

# coding=utf-8

def is_close_str(str_1, str_2):

# 长度要一致,且不能为0

if len(str_1) != len(str_2) or len(str_1) < 2:

return false

index = 0

diff_index_lst = [] # 记录不一致的索引位置

char_set = set()

while index < len(str_1):

# 遇到相同位置字符不相同的情况

if str_1[index] != str_2[index]:

diff_index_lst.append(index)

if len(diff_index_lst) > 2:

return false

char_set.add(str_1[index])

index = 1

if len(diff_index_lst) == 0:

if len(str_1) != len(char_set):

return true

elif len(diff_index_lst) == 2:

diff_index_1 = diff_index_lst[0]

diff_index_2 = diff_index_lst[1]

# 两处不一样的地方交错比较

if str_1[diff_index_1] == str_2[diff_index_2] and \

str_1[diff_index_2] == str_2[diff_index_1]:

return true

return false

if __name__ == '__main__':

print(is_close_str("", ""))

print(is_close_str('abc', 'acba'))

print(is_close_str('ab', 'ab'))

print(is_close_str('cccb', 'cccb'))

print(is_close_str('ccbcab', 'cccbab'))

print(is_close_str('acbcad', 'dcbcaa'))

8.19 最大正方形

题目要求

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积

输入:

1 0 1 0 0

1 0 1 1 1

1 1 1 1 1

1 0 0 1 0

输出: 4

思路分析

只包含1的正方形可以出现在矩阵的任意位置,所以,不要妄想通过什么巧妙的办法快速的找到这个正方形的位置,正确的做法是遍历整个矩阵,尝试去找正方形,可能会找到多个,因此还要保留记录那个最大的正方形。

既然是遍历,那么就得从头到尾的进行遍历,假设矩阵matrix大小是m*n,那么就从matrix[0][0]开始进行遍历,一直遍历到matrix[m-1][n-1]。

当遍历到matrix[x][y]时,可以将这个点视为正方形的左上角,以此为基础,去判断matrix[x 1][y], matrix[x][y 1], matrix[x 1][y 1]这3个点是否也是1,如果成立,就找到了一个正方形,在此基础上,再向右下方扩展一层,判断能否以matrix[x][y]做正方形的左上角,以matrix[x 2][y 2]做正方形的右下角。

由于总是以某个点做正方形的左上角,因此,最后一行和最后一列是不需要遍历的,因为这些点无法构成正方形的左上角。

示例代码

matrix = [

[1, 0, 1, 0, 0],

[1, 0, 1, 1, 1],

[1, 1, 1, 1, 1],

[1, 0, 1, 1, 1],

[1, 0, 1, 1, 1],

]

matrix = [['1']]

def max_square(matrix):

y = len(matrix)

if y == 0:

return 0

x = len(matrix[0])

if x == 0:

return 0

max_area = 0

for i in range(0, y):

for j in range(0, x):

cell = matrix[i][j]

if cell == '0':

continue

area = get_area(matrix, i, j)

if area > max_area:

max_area = area

return max_area

def get_area(matrix, left_up_x, left_up_y):

step = 1

right_down_x = left_up_x step

right_down_y = left_up_y step

while right_down_x < len(matrix) and right_down_y < len(matrix[0]):

b_square = true

if matrix[right_down_x][right_down_y] == '0':

break

for i in range(left_up_x, right_down_x):

if matrix[i][right_down_y] == '0':

b_square = false

break

if not b_square:

break

for j in range(left_up_y, right_down_y):

if matrix[right_down_x][j] == '0':

b_square = false

break

if not b_square:

break

step = 1

right_down_x = left_up_x step

right_down_y = left_up_y step

return step**2

if __name__ == '__main__':

print(max_square(matrix))

8.20接雨水

题目要求

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水

?

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)

思路分析

思考才是最重要的

这个题目非常好的诠释了一句话----“技术,只是实现目标的方式和手段”。

很多人面对问题时,总是有一种较劲脑汁写算法的冲动,还有人,以为每一种问题都有一个成熟的爱游戏平台的解决方案,似乎接触过这个方案并记忆下来,今后再遇到时就可以迎刃而解了。殊不知,编程是一个创造性的思考过程,很多人不愿意思考,更喜欢走马观花般的背答案。短时间内的确可以提升算法能力,但长期来看,你的逻辑能力才是解决问题的根本,思考才是第一位的。

两个基本判断

我们先不去想怎么写算法,而是先分析,抽丝剥茧的对这个问题进行分析。

首先,最左侧的柱子和最右侧的柱子上面不可能存储雨水,这个判断很简单,不做讨论。

其次,每个柱子上能存储多少水,取决于它左右两侧最高柱子的高度,以索引为5的柱子为例,这个柱子的高度是0,它左侧最高的柱子是索引为3的柱子,高度为2, 它右侧最高的柱子是索引为7的柱子,高度为3,这两个柱子的高度决定了,索引为5的柱子上面可以存储水2个单位。

算法思路

经过上面的两点分析,解题的思路就非常清晰了。

遍历数组,计算每个柱子左右两侧的最高柱子的高度,这两个高度中选最小的,如果这个最小高度大于当前柱子的高度,那么差值就是当前这个柱子能够存储的水的量。

由于遍历的过程是从左向右,因此,左侧最高柱子的高度可以用一个变量保存起来,而右侧最高柱子的高度则需要每次都去计算,但是经过一次寻找后,这个最高柱子的位置就确定了,假设位置为k,对于这个柱子左侧的所有柱子来说,他们右侧的最高柱子都是固定的,因此,也可以存储起来,直到遍历过程中当前柱子的索引大于等于k,则需要重新寻找。

实例代码

def trap(lst):

left_height = 0

right_index = 0

rain = 0

for index, item in enumerate(lst):

# 第一个和最后一个不用考虑,因为柱子上方无法存储水

if index == len(lst) - 1 or index == 0:

left_height = item

continue

# 如果左侧最高为0或者和当前高度相同,当前这个柱子的上方无法存储水

if left_height == 0 or left_height == item:

left_height = item

continue

# 获取右侧最高的柱子高度, 取左右两侧较矮的,如果当前柱子高度小于它,则可以存储水

if index >= right_index:

right_index, right_heigth = find_right_heigth(index, lst)

min_heigth = min([left_height, right_heigth])

if min_heigth > item:

rain = min_heigth - item

# 更新左侧最高柱子的高度

if item > left_height:

left_height = item

return rain

def find_right_heigth(index, lst):

"""

返回index右侧最高柱子的位置和高度

:param index:

:param lst:

:return:

"""

right_heigth = 0

right_index = index

for i in range(index, len(lst)):

if lst[i] > right_heigth:

right_index = i

right_heigth = lst[i]

return right_index, right_heigth

if __name__ == '__main__':

lst = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]

print(trap(lst))

8.21 字符串的排列

题目要求

给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。

换句话说,第一个字符串的排列之一是第二个字符串的子串

实例1

输入: s1 = "ab" s2 = "eidbaooo"

输出: true

解释: s2 包含 s1 的排列之一 ("ba")

实例2

输入: s1= "ab" s2 = "eidboaoo"

输出: false

思路分析

暴力算法

以字符串“abc” 为例,它有6种排列,分别为

abc

acb

bac

bca

cab

cba

你可以写一个算法,找出一个字符串的所有排列,然后利用字符串的find函数,在第二个字符串中逐个查找是否存在这些排列。

上面的思路虽然笨重,但可以解决问题。

更优的解法

让我们把思路从字符串排列上移开,假如有一个字符串包含了字符串“abc”的6个人排列中的某一个,那么可以肯定的讲,在这个字符串里,一定有一个长度为3的子串,这个子串包含了a,b,c这三个字符。

至于顺序,则完全不用考虑,只要这个长度为3的子串包含了a,b,c这三个字符,那么这个子串就一定是字符串“abc”的某个排列。

算法思路如下

统计第一个字符串的字符信息,存放于字典中,记录每个字符的数量

遍历第二个字符串,同样统计每个字符的数量,然后和第一步中的字符信息进行比较,其实就是两个字典的比较。这里有一个需要注意的地方,遍历过程中,只能统计子串的信息,而不是从头到尾的去做统计,如果第一个字符串的长度是3,那么当第二个字符串遍历到索引5时,只能统计索引3到5这个范围内的信息

如果两个字典完全相同,就说明第二个字符串的这段子串是第一个字符串的一个排列

实例代码

def check_inclusion(s1, s2):

s1_chr_info = {}

for chr in s1:

s1_chr_info.setdefault(chr, 0)

s1_chr_info[chr] = 1

s2_chr_info = {}

start_index = 0 # 连续空间开始的位置

for index, chr in enumerate(s2):

if chr not in s1_chr_info:

s2_chr_info.clear()

start_index = index 1

continue

# 右侧进

s2_chr_info.setdefault(chr, 0)

s2_chr_info[chr] = 1

# 左侧出

left_index = index - len(s1)

if left_index >= start_index and s2[left_index] in s1_chr_info \

and s2[left_index] in s2_chr_info :

s2_chr_info[s2[left_index]] -= 1

if is_dict_same(s1_chr_info, s2_chr_info):

return true

return false

def is_dict_same(dict_1, dict_2):

"""

dict_1 是第一个字符串的统计信息,以它为基准进行判断

:param dict_1:

:param dict_2:

:return:

"""

if len(dict_1) != len(dict_2):

return false

for k, v in dict_1.items():

if k not in dict_2:

return false

if v != dict_2[k]:

return false

return true

if __name__ == '__main__':

print(check_inclusion("ab", "eidbaooo"))

print(check_inclusion("abcd", "eidbadcooo"))

print(check_inclusion("abcd", "eicwdbardcooo"))

emerge vt.显现,浮现;暴露;形成; friendly a.友好的,友谊的 irritate vt.激怒,恼火,使急躁 boot n.靴;(汽车后部的)行李箱;[the-]解雇 companion n.同伴,共事者;伴侣 hum v.哼曲子;发嗡嗡声;忙碌n.嗡嗡声,嘈杂声 update v.更新,使现代化 sun n.太阳;恒星;美国sun公司 gang n.一帮,一群,一伙 camel n.骆驼 volleyball n.排球 symphony n.交响乐,交响曲 caution n.谨慎;注意(事项),警告vt.劝…小心 part n.部分,角色,一方,零件,地区,部,篇v.使分开 bathroom n.浴室;盥洗室,卫生间 vocation n.职业;召唤;天命;天职;才能 diligent a.勤奋的,用功的 acid n.酸,酸性物质a.酸的,酸味的;尖刻的 crude a.天然的,未加工的;未熟的;粗鲁的,粗野的 crime n.罪行,犯罪 clothe v.(给…)穿衣,供给…衣服 funeral n.丧葬,葬礼 insure vt.保险,给…保险;保证 something pron.某事,某物;被视为有意义的事物 operation n.运转,开动,操作,手术,运算,经营 vice n.邪恶;恶习;(pl.)台钳,老虎钳 birthday n.生日;(成方)纪念日 plan n.计划,规划;平面图,设计图 v.计划 already ad.已,已经,早已 blast n.一阵(风);爆炸冲击波;管乐器声 v.爆炸 bloody a.流血的,血腥的 nice a.美好的,令人愉快的;友好的,亲切的 significance n.意义,含义;重要性,重要的 appliance n.电器;器械,装置;应用,适用 agitate v.摇动(液体);使焦虑不安;困扰;鼓动 total n.总数,合计 a.总的,全部的 v.合计,总数达 lens n.透镜,镜头 mail n.邮件 v.邮寄 steam n.水汽,蒸汽,水蒸气 v.蒸发;蒸;用蒸汽开动 language n.语言,术语,(运用语言的)方式、风格 flour n.面粉 awful a.极度的,极坏的;威严的,可怕的 me pron.[i 的宾格]我 take v.拿取;吃;记录;取得;花费;捕获;认为 after prep.在...以后;在...后面 adv.以后,后来 shorthand n.速记 commercial a.商业的;商务的;可获利的 n.广告节目 statistical a.统计的,统计学的 transfer vt./n.转移;转换;转让;过户;迁移;改乘 restrain v.(from)抑制,制止 petty a.小(器、规模)的,不重要的,细微的,卑鄙的 wood n.木材,木头,木料;(pl.)森林,林地 shabby a.简陋的,破旧的,卑鄙的,不公平的 mainland n.大陆,本土 poverty n.贫穷,贫困 senator n.参议员 gene n.基因 piano n.钢琴 inspire vt.鼓舞,激起;使产生灵感 package n.包装,包裹,箱,包装费,标准部件,成套设备 startle v.惊吓,使吃惊 slice n.薄片,切片;一份;部分切(片) brace v.使防备;支撑;使(手,足,肩等)绷紧 n.托架 weapon n.武器,兵器 everybody pron.(everyone)每人,人人 respond v.回答,响应,作出反应 railroad n.(railway)铁路 v.由铁道运输 beg vt.请求,乞求 vi.恳请,行乞 rebel v.反抗,反叛,起义 n.叛逆者,起义者 equal a.相等的;胜任的n.相等的事务;对手v.等于 print n.印刷,印刷品,字体 v.印刷,出版;洗印 border n.边界,国界;边(沿) v.交界,与…接壤;接近 danger n.危险;威胁;危险事物 union n.联合,团结;联盟,联邦;协会,社团;和谐 inflation n.通货膨胀 semiconductor n.半导体 bankrupt a.破产的;彻底缺乏的 vt.使破产n.破产者 close v./n.关;结束 a./ad.近的(地);紧密的(地) hero n.英雄,勇士;男主角,男主人公 employer n.雇主 shell n.壳,贝壳;炮弹 far a./ad.远,久远,遥远 ad.到…程度,…得多 action n.行动,动作;作用;运转;行为;战斗 dominant a.支配的,统治的,占优势的 reproduce v.生殖;翻版;繁殖;复制,仿造 vicious a.恶毒的,凶残的,邪恶的 football n.足球 september n.九月 along ad.向前;和...一起,一同 prep.沿着,顺着 like v.喜欢 prep.象;比如 a.相象的 n.象…一样 unlike a.不同的,不相似的 prep.不象,和…不同 pursuit n.追赶,追求;职业,工作 disposal n.处理,处置;布置,安排 eliminate vt.除去;淘汰;排(删,消)除;削减(人员) monday n.星期一 wash n.洗;洗的衣物 vt.冲刷,洗;冲出 vi.洗澡 lane n.小路,小巷,行车道 about ad.在周围;大约 prep.关于;在周围 a.准备 market n.集市,市场;销路,需求(量) v.销售 quarterly a.每季的 ad.每季一次 n.季刊 adjacent a.(to)(时间上)紧接着的;邻近的,毗邻的 cling v.(to)粘住;依附;坚持 nod v.点(头),点头招呼 n.点头招呼;打盹,瞌睡 aisle n.(教堂、教室、戏院等里的)过道,通道 needle n.针,指针,针状物 glad a.高兴的,快活的;乐意的,情愿的 cheque n.(check)支票,空白支票;总收入 leak v.漏,泄漏 n.漏洞,漏隙;泄漏,漏出 eloquent a.雄辩的,有说服力的;善辩的,口才流利的 obsession n.迷住, 困扰 skull n.头盖骨,颅骨 distance n.距离,间隔,远方,路程 tender a.嫩的;敏感的;温柔的 v.提出,提供;投标 nature n.自然界,大自然;性质,本性,天性 expel v.把…开除;驱逐;排出;发射 rack n.挂物架,搁物架 v.使痛苦,折磨 decent a.体面的;正派的,合乎礼仪的;合适的 kindness n.仁慈,亲切;好意;友好行为 hospital n.医院 lake n.湖泊,湖水 abide vi.(abode,abided)(by)遵守;坚持 polite a.有礼貌的,客气的;有教养的,文雅的 choke v.窒息,噎住;闷塞,堵塞,阻塞 subway n.地铁;地下行人隧道 what pron.什么 a.多么,何等;什么;尽可能多的 stereotype n.陈规,老套,模式化 vt.使定型,使模式化 cricket n.板球;蟋蟀 faint a.微弱的;不明显的;暗淡的 n./v.昏倒;昏晕 bulletin n.公报,公告,告示 instruction n.教授;指导;(pl.)用法说明(书),操作指南 inject vt.注射(药液等);注入 panorama n.全景,全景画,全景摄影,全景照片[装置] section n.章节,部分;地区,部门,科;截面,剖面 reserve n.储备(物),储备金;缄默 v.保留,储备;预定 quarter n.四分之一;季;一刻钟;(pl.)方向;(pl.)住处 commute v.乘公交车上下班,乘车(船等)往返于两地 verdict n.(陪审团的)裁决,判决;判断;定论 beef n.牛肉 body n.身体,本体;主体;尸体;物体;(一)群,批,堆 cheat v.欺骗;作弊 n.骗子;欺诈,欺骗行为 noun n.名词 new a.新(近)的;新来的;不熟悉的;没经验的 full a.(of)满的,充满的 a./ad.完全,充分 sow v.播种 theater n.(theatre)戏院;戏剧;阶梯教室 wonder n.惊奇,惊异;奇迹,奇事 v.(at)诧异;想知道 freedom n.自由,自主,免除,特权 dress n.服装,童装,女装 v.穿衣,打扮 intervene v.(in)干涉,干预;插入,介入 snow n.雪,下雪 vi.下雪;如雪一般地落下 specific a.明确的,具体的;特定的,特有的 note n.笔记;按语,注释;钞票,纸币v.记下,摘下 nylon n.尼龙 branch n.(树)条,分支;分店;(学科)分科,部门;支流 develop v.发展,开发,研制;显现,显影;发育,生长 pact n.合同,条约,公约,协定 remnant n.剩余(物),零料,遗迹[风] a.剩余的,残留的 exist v.存在;生存;生活 standpoint n.立场,观点 anything pron.任何东西(事物);无论什么东西(事物) characteristic a.(of)特有的,独特的 n.特征,特性 finding n.发现,发现物;(常pl.)调查/研究结果 sound n.声音v.发声,响a.健全的,完好的;正当的 successful a.圆满的;顺利的;成功的 intact a.完整无缺的,未经触动的,未受损伤的 deficit n.赤字,逆差;亏损,亏空;不足,缺乏 interfere v.(in)干涉,干预;(with)妨碍,打扰 process n.过程,进程;工序,制作法;工艺 v.加工,处理 fragment n.碎片,小部分,片断 hostage n.人质 oxygen n.氧,氧气 supervise v.管理,监督 dinner n.正餐,宴会 such a.这样的;上述的ad.那么pron.这样的人/事物 school n.学校,(大学里的)学院;上学,学业;学派 conservative a.保守的,守旧的 n.保守主义者 visible a.看得见的, 明显的, 显著的 maintain v.维修,保养,维持,供养,坚持,主张,支持 participate v.(in)参与,参加;分享,分担;含有,带有 dig v.挖,掘 scorn v./n.轻蔑,藐视 tea n.茶(叶);午后茶点 equator n.赤道 affirm vt.断言,坚持声称;肯定;证实,确认; ox n.牛,公牛 doctor n.医生;博士 vt.授以博士学位;诊断;修改 playground n.运动场,游戏场 rag n.抹布,破布,碎布 ought aux.应该(使用时,之后应接to,再接动词原形) eyesight n.视力 view n.视野;风景;观察;见解;照片 vt.观察;认为 slave n.奴隶,苦工 v.做苦工,拼命地干 bowling n.保龄球运动 arbitrary a.任意的,任性的,主观的;专断的,武断的 zebra n.斑马 persecute v.迫害 poster n海报,张贴的大幅广告 pour v.灌注, 倾泻, 涌入, 流, 倾盆大雨 drift v./n.漂,漂流(物) fool n.傻子,笨蛋vt.欺骗,愚弄vi.干蠢事 axe n.(ax)斧子;削减 vt.用斧砍 frustrate vt.挫败,阻挠,使灰心 intention n.意图,意向,目的 install vt.(instal)安装,设置,安置;使就职,任命 project n.方案,工程,项目v.投射,放映;设计,规划 fit a.(病的)发作,痉挛 v./a.n.合适,试穿,安装 festival n.节日;音乐节;戏剧节 a.节日的;快乐的 antique a.古式的,过时的 n.有价值的古物,古董 variety n.种种,多种多样;种类,品种 quality n.质量,品质,特性 no ad.不是,不 a.没有的;不允许 n.不,拒绝 adequate adj.充足的,足够的;适当的,胜任的 defy v.(公然)违抗,反抗;蔑视 forest n.森林 consequence n.结果,后果,影响;重要性 sentiment n.感情,柔情;看法;感觉 tired a.疲劳的;厌倦的 strive v.奋斗,努力 slender a.修长的,细长的,苗条的;微小的,微薄的 rule v.统治;支配;裁定n.规章,条例;习惯;统治 transient a.短暂的,转瞬即逝的;临时的,暂住的 husband n.丈夫 humble a.谦卑的,恭顺的;地位低下的 v.降低,贬低 operate v.操作,运转,开动,起作用,动手术 classroom n.教室,课堂 announce v.正式宣布;发表;通告;广播(电台节目) jaw n.颌,颚 teenager n.十几岁的青少年 train n.列车;行列,系列,一串 v.训练,培养 rock n.岩石,石块 v.摇,摇动 odd a.奇数的;奇怪的;单只的;临时的;带零头的 kettle n.水壶 born a.出生的,产生的;天生的,十足的 pessimistic a.悲观(主义)的 play v.玩,做游戏;参加比赛n.游戏;玩耍;剧本 pope n.罗马教皇,主教,大腿上要害部位 tolerant a.容忍的,宽容的;有耐药力的 nasty a.肮脏的,卑劣的,下流的;令人厌恶的 autumn n.秋,秋季;成熟期,渐衰期 treat v.对待;治疗;论述;款待,请客 n.款待,请客 run v.奔,跑;流,淌;蔓延,伸展;经营;运转 benefit n.利益,好处,恩惠 v.有益于;(from,by)受益 pork n.猪肉 invitation n.邀请,招待;请柬 promise v.允许,答应;有…可能n.承诺;希望,出息 blunder v.(因无知等而)犯大错;踉踉跄跄地走 n.大错 eager a.(for)渴望的,热切的 export v./n.输出,出口 n.出口商品 ache vi.痛;哀怜 n.(指连续)疼痛、酸痛i work n.工作(量);作品;[pl.]工厂 v.工作;运转 mere a.纯粹的;仅仅,只不过 bang n.砰砰的声音;猛击 v.砰地关上,猛撞,猛击 homework n.(学生的)家庭作业、课外人员 stroke n.击;报时的钟声;一击/划/笔;中风 v.抚摸 lottery n.抽彩;碰运气的事,难于算计的事 grant v.同意,准予;授予 n.授予物;津贴;转让证书 moisture n.潮湿,湿气,湿度 possible a.可能的,做得到的;合理的;可允许的 principle n.原理,原则;主义,信念 relativity n.相关(性);相对论 rear n.后面,背后,后方 v.饲养,抚养,栽培,举起 wear v.穿着,戴着;磨损,用旧 n.穿,戴;磨损 fatigue n./v.(使)疲劳 objective n.目标,目的 a.客观的,真实的 next a.紧接的,其次的;贴近的 ad.其次;居后 telegram n.电报 ruthless a.残酷的,无情的 allow vt.允许,准许;承认;给予;(for)考虑到 suspicion n.怀疑,猜疑;一点儿,少量 beneath prep.在…下边,在…之下 ad.在下方 siren n.警报声,警报器 dilute vt.稀释,冲淡 a.稀释的,冲淡的 headmaster n.校长 frown v.皱眉 delicious a.美味的;美妙的;使人愉快的 director n.指导者,主任,导演 embassy n.大使馆;大使及其随员 tariff n.关税,税率;(旅馆,饭店等)价目表,收费表 patient a.有耐心的,能忍耐的 n.病人,患者 reach v.抵达;(out)伸手,够到 n.能达到的范围 oxide n.[化]氧化物 exile n.流放;被流放者 vt.流放,放逐,把…充军 scholarship n.奖学金;学问,学识 captive n.俘虏 a.被俘虏的,被监禁的 evening n.傍晚,黄昏,晚上 newspaper n.报纸 authentic a.真的,真正的;可靠的,可信的,有根据的 fortunate a.幸运的,侥幸的 stable a.稳定的,安定的 n.马厩,马棚 background n.背景,经历;幕后 slum n.贫民窟,贫民区,陋巷 address n.住址;致词 v.向...致词;在信封上写姓名 tenant n.承租人;房客;佃户 vt.租借,承租 slam v.(门、窗等)砰地关上 n.猛然关闭的声音 tribute n.贡品;颂词,称赞,(表示敬意的)礼物 dispute n.争论,争执 v.争论,辩论;反驳;怀疑;阻止 hatred n.憎恨,憎恶,怨恨 tile n.瓦片,瓷砖 vt.铺瓦于,贴砖于 consider v.考虑,细想;体谅,顾及;认为,把…看作 voluntary a.自愿的,志愿的 cause n.原因;事业,事件,奋斗目标 v.使产生,引起 itself pron.(it的反身代词)它自己,它本身 underline vt.在…下划线;强调 futile a.无效的,无用的,无希望的 scarce a.缺乏的,不足的;稀少的,罕见的 elevator n.电梯,升降机 agenda n.议事日程,记事册 handsome a.漂亮的,英俊的;慷慨的,数量可观的 verify vt.证实,查证;证明 glorious a.壮丽的,辉煌的;光荣的 productivity n.生产率 evacuate vt.撤离,疏散,排泄,剥夺 drunk a.醉酒的;(喻)陶醉的 n.酗酒者,醉汉 solidarity n.团结;休戚相关 biology n.生物学 formation n.形成;构成;组织;构造;编制;塑造 respect n./v.尊敬,尊重 n.敬意,问候,关系,方面 capacity n.容量,容积;能量,能力;接受力 curl v.(使)卷曲,蜷缩 n.卷发;卷曲状;卷曲物 judicial a.司法的,法庭的,审判的;明断的,公正的 struggle n./v.斗争,奋斗,努力 christ n.基督,救世主,耶稣 mile n.英里,哩,海里 angle n.角,角度 v.钓鱼;(采用各种方法)取得 guidance n.引导,指导 despair n.绝望;失望;令人失望的人(事物)v.绝望 fail v.失败,不及格;衰退,减弱 tail n.尾巴;尾部;跟踪者 vt.尾随,跟踪 card n.卡片,名片;纸牌;纸片 grain n.谷物,谷类;颗粒,细粒 meditation n.熟虑;(尤指宗教的)默想,沉思;(pl.)冥想录 preface n.序言,引言,前言 v.作序,写前言 cap n.便帽,军帽;盖,罩,套 v.覆盖于…顶端 starve v.(使)饿死,饿得慌,挨饿 collect v.收集,搜集;领取,接走;收(税等);聚集,堆积 arrest n.逮捕,扣留 vt.逮捕,扣留;阻止;吸引 bait n.饵,引诱物 vt.用饵引诱;折磨,奚落 shape n.形状,外形;情况,状态;种类v.成型,塑造 owing a.欠的,未付的 business n.商业,生意;事务,业务,职责 tragedy n.悲剧;惨事,灾难 cut n./v.切,割,削;削减,删节 n.切口, sympathize v.(sympathise)(with)同情;共鸣,同感;赞成 relax v.(使)松驰,放松 horsepower n.[机]马力 premise n.前提,房屋连地基v.提论,预述,假定 reliance n.信任,信心,依靠,依靠的人或物 scream v./n.尖声叫,喊叫着说出,(风)呼啸 pinch v.捏,掐,拧;收缩;紧急关头;匮乏;压力 bubble n.泡,水泡,气泡 v.冒泡,起泡,沸腾 frown v.皱眉 nobody pron.谁也不,无人 n.小人物 rank n.军衔,社会阶层;排 v.分等级,把…分类 slip v.滑,滑倒;滑掉;溜走n.疏忽,小错,口误,笔误 overlook v.看漏,忽略;俯瞰,眺望;宽容,放任 entity n.实体;存在(物);组织,机构;本质 freight n.货物,货运,运费 inch n.英寸 manifest v.表明,证明,显示 a.明白的,明了的 graph n.图表,曲线图 learned a.博学的,有学问的 defend v.防守,保卫;为…辩护,为…答辩 fence n.篱笆;围栏;剑术 v.用篱笆瓦围住;击剑 introduce vt.介绍;引进,传入;提出(议案等) barn n.谷仓,仓库 gossip n./v.(说)闲话,闲聊 prominent a.突起的,凸出的;突出的,杰出的 sociable a.好交际的,友好的,合群的 guitar n.吉他 vi.弹吉他 barrel n.桶;枪管,炮管 melody n.旋律,曲调;悦耳的音乐 cover v.覆盖,包括,涉及 n.盖子,套子;(书的)封面 deadline n.最后期限 out ad.出去;离家;突出来 a.外面的,往外去的 conscience n.良心,良知 within prep.在…里面,在…以内 ad.在内 primary a.最初的,初级的;首要的,主要的,基本的 approval n.批准,通过;赞成,同意 stir v.搅拌,搅动;动,摇动;激动;轰动;煽动,鼓动 fireplace n.壁炉 recruit v.征募(新兵),吸收;补充 n.新成员,新兵 encourage v.鼓励,怂恿 confront v.使面临,使遭遇;面对(危险等) uncle n.伯父,叔父,舅父,姑父,姨父 ounce n.盎司,英两 highlight v.使显著,使突出;强调 n.最精彩的部分 sequence n.先后,次序;连续,数列 plenty n.丰富,大量 sugar n.糖,食糖 vt.加糖于 goods n.(pl.)货物,商品 lock n.锁 v.锁,锁上 pole n.柱,杆;地极,磁极,电极 instinct n.本能,直觉,天性 their pron..[they的所有格]他(她、它)们的 aviation n.航空,航空学;飞机制造业 wool n.羊毛,毛线,毛织品 deck n.甲板 would aux./v.将;可能;将会;总是,总会;宁愿 whirl v.(使)旋转,打转 n.旋转;-连串快速的活动 leaf n.叶子;(书刊的)一页,一张;金属薄片 quiet a.安静的,平静的 n.安静 v.使安静,平静 outfit n.用具,机构,全套装配 v.配备,(得到)装备 dust n.灰尘,尘土 v.拂,掸 utilize vt.利用 steward n.乘务员,服务员;看管人;膳食管理员 arch n.拱门,桥拱洞 v.拱起,(使)变成弓形 yell vi.大叫;呼喊 vt.叫着说 n.叫声;喊声 dam n.水坝,水闸 dissipate v.驱散;(使云、雾、疑虑等)消散;挥霍 scope n.(活动)范围;机会,余地 mystery n.神秘,神秘的事物;神秘小说,侦探小说 you pron.你;你们;一个人,任何人 where ad.在哪/那里 conj./pron.哪里 conj.然而 chain n.链(条);(pl.)镣铐;一连串 v.用链条拴住 orchestra n.管弦乐队 supply v.(with,to)供给,供应,补足 n.供应,供应量 economic a.经济(上)的,经济学的 slap n./v.拍,掌击 resort v.凭借,求助,诉诸n.度假胜地,常去之处,手段 soft a.软的;温柔的;细嫩的,光滑的;不含酒精的 chemist n.化学家;药剂师 parent n.父母,母亲;(pl.)双亲;父母 drown v.溺死,淹没 early a.早的,早期的,及早的 ad.早,在初期 omit v.省略,删去;遗漏,忽略 rely v.(on)依赖,依靠;信赖,信任 status n.地位,身份;情形,状况 coat n.上衣,外套;表皮;层,覆盖物 v.涂(盖)上 galaxy n.星系;(the galaxy)银河(系);一群显赫的人 show n.节目,表演 v.上演(戏剧等),放映(电影) steep a.陡峭的;险峻的;急剧升降的vt.浸泡,沉浸 furnace n.炉子,熔炉 marxist a.马克思主义的 n.马克思主义者 vertical a.垂直的,竖的 n.垂线 moral a.道德(上)的,精神上的 n.寓意,教育意义 welcome int.欢迎 a.受欢迎的 vt./n.欢迎;迎接 foam v./n.泡沫,起泡沫 distress n.苦恼;危难;不幸 v.使苦恼 select v.选择,挑选 a.精选的,选择的 alliance n.同盟,同盟国;结盟,联姻 obstruct v.阻隔,阻塞(道路、通道等)n.阻碍物,障碍物 laugh v.笑;(on)讥笑 n.笑,笑声 blur n.模糊不清的事物;污点 vt.使模糊;玷污 inverse a.相反的,倒转的,反转的 n.相反之物 v.倒转 career n.(个人的)事业;专业,生涯,职业,经历 exquisite a.优美的,高雅的,精致的;剧烈的,异常的 silence n.寂静,沉默 v.使沉默,使安静 naval n.海军的,军舰的 resent v.对…表示忿恨,怨恨 exert v.尽(力),施加(压力等),努力 citizen n.公民;市民,居民 accustomed a.惯常的;习惯的,适应的(一般作表语) educate v.教育,培养,训练 cushion n.垫子,软垫 vt.装垫子;缓和,减轻; loyalty n.忠诚,忠心 footstep n.脚步(声),足迹 improve v.改善,改进,增进;好转,进步 maneuver n.(manoeuvre)机动;运用,操作; v.机动 lay v.放,搁;下(蛋);铺设,敷设;设置,布置 vacuum n.真空,真空吸尘器 room n.房间,室,空间,地方;余地 outward a.外面的,公开的,向外的ad.向外,在外n.外表 await vt.等候,期待;(事情等)降临于 fortune n.运气;命运;财产;财富 peak n.山顶,最高点;峰,山峰 a.高峰的,最高的 notable n.值得注意的,显著的,著名的 past a.过去的 ad.过 n.过去,昔日 prep.(经)过 station n.车站;所,站,局;身份,地位 v.安置,驻扎 pursue v.追赶,追踪;继续,从事 dance n.舞(蹈);舞曲,舞会 v.跳舞;跳动 murmur v./n.小声说(话);小声抱怨,咕哝 trash n.垃圾;拙劣的作品;渣滓,败类 however ad.然而,可是,不过,无论如何 conj.无论 subsequent a.随后的,后来的 rectify v.纠正,整顿, [化]精馏 decade n.十年 increase v./n.增加,增长,增进 worthy a.(of)值得…的,配得上…的;有价值的 recorder n.记录员;录音机 shop n.商店,店铺;工厂,车间 v.买东西 landlord n.房东,地主 cosy a.暖和舒服的;舒适的 [反]uncomfortable strange a.奇怪的,奇异的;陌生的,生疏的;外地的 former a.以前的,在前的 pron.前者 stereo n.立体声音响;立体声装置 n./a.立体声(的) fertile a.肥沃的,富饶的;能繁殖的 wink v.(使)眨眼;眨眼示意 n.眨眼;小睡,打盹 cupboard n.碗柜,小橱 efficiency n.效率;功效 acquisition n.取得,学到,养成(习惯);获得的东西 induce v.引诱,劝使;引起,导致;感应 nuisance n.讨厌的人(或东西);麻烦事 dive v./n.潜水,跳水,俯冲 four num.四 pron./a.四(个,只...) fringe n.边缘;(窗帘)缘饰;额前垂发 vt.饰…的边 era n.时代,年代,阶段,纪元 any a.(用于否定句、疑问句等)什么,一些;任何的 apple n.苹果,苹果树 toll n.(道路、桥等的)通行费;牺牲;死伤人数 unexpected a.想不到的, 意外的, 未预料到 course n.课程,教程;过程,进程;路程,路线;一道菜 rescue v./n.营救,援救 strengthen v.加强,巩固 mercy n.仁慈,怜悯,宽恕 enquire v.(inquire)询问,打听;调查;查问 intricate a.复杂的,错综的,难以理解的 layer n.层,层次;铺设者 hurry vi.匆忙 vt.催促;急运(派) n.急(匆)忙 ticket n.票,入场券;票签;(交通违章)罚款传票 chap n./v.(皮肤)变粗糙;发痛;n.小伙子 stoop v.弯腰,俯身 n.弯腰,曲背 fun n.玩笑,娱乐;有趣的人(或事物) assistance n.协作; 援助; 帮助 wednesday n.星期三 gallon n.加仑 mortgage n./v.抵押(借款) delivery n.递送;交付;分娩;交货;引渡 assign vt.派给,分配;选定,指定(时间、地点等) kilo n.(kilogram/kilogramme)千克 chamber n.房间,室;会议室;议院;(动物体内)腔室 game n.游戏,娱乐;比赛;(pl.)运动会 vi.赌博 liability n.责任,义务;(pl.)债务 adult n.成年人 a.成年的,充分长成的,成熟的 reinforce v.增援,加强 segregate vt.使···分开,隔离(病患等) kiss n./v.吻,接吻 lamp n.灯 migrate v.迁移,移居(国外) jam n.阻塞,轧住;果酱 v.(使)阻塞,(使)轧住不动 executive n.总经理,董事,行政负责人 a.执行的,实施的 brake v./n.制动(器),闸,刹车 perpetual a.永久的,永恒的,长期的 growth n.生长,增长,发展 religious a.宗教的,信教的,虔诚的 labor n.(labour)工作,劳动;劳力 v.劳动,苦干 guess v./n.猜测,推测;以为;猜想[同]surmise herd n.群,兽群,牛群 v.放牧,群集 sovereign a.独立的,有主权的 n.君主,国王,统治者 capital n.首都;大写字母;资本 a.主要的,大写字母的 victim n.牺牲品,受害者 west n./a.西,西方(的),西部(的) ad.向西 probable a.很可能的,大概的;有希望的,可能的 crisis n.(pl.crises)危机,紧要关头 between prep.在…之间,在(两者)之间 ad.在中间 warn vt.警告 vi.发出警告 initiative a.创始的,起始的 n.第一步,创始,主动精神 ballet n.芭蕾舞,芭蕾舞剧;芭蕾舞团 stability n.稳定,安定 absence n.缺乏,不存在;缺席,不在;缺席的时间 string n.弦,线,细绳;(一串),(一行) v.缚,捆 swamp n.沼泽;湿地 vt.浸没;使…应接不暇 therefore ad.因此,所以 conj.因此 wind n.风;气息 v.转动;缠绕;上发条,;蜿蜒而行 mark n.痕迹;记号;分数 v.标记,打分,使有特色 super a.极好的,超级的 traitor n.叛徒,卖国贼 mathematical a.数学的;数学上的 temple n.庙宇,神殿,寺;太阳穴 oppress v.压迫,压制 soluble a.可溶的 accept vt.接受,领受;认可,同意 vi.同意,认可 profound a.深刻的,意义深远的;渊博的,造诣深的 certain a.某,某一,某些;(of)一定的,确信的,可靠的 phrase n.短语,词语,习语 shall aux.v.(我,我们)将要,会;必须,应该 peanut n.花生 cigar n.雪茄烟 duty n.义务,责任;职务;税 repetition n.重复,反复 deduce vt.(from)演绎,推断,推论 bow v./n.鞠躬,点头 n.弓(形);蝴蝶结 voice n.声音;嗓音;发音能力;意见,发言权;语态 settle v.安定,安顿;停息;定居;解决,调停 recovery n.痊愈,复元;重获,恢复 mosaic n.马赛克;镶嵌体 blueprint n.蓝图,设计图,计划 vt.制成蓝图,计划 let v.让,允许,听任;设,假设;出租,租给 retire v.退休,引退;退却,撤退;就寝 powder n.粉末,药粉;火药,炸药 loudspeaker n.扬声器,扩音器 extinct a.灭绝的;熄灭了的 barrier n.栅栏,屏障;障碍(物) tonight ad.在今晚;在今夜 n.今晚,今夜 direct a./ad.径直的(地) v.管理,指导;(at,to)指向 divert vt.使转向,使改道;转移(注意力);使娱乐 clip v.剪,修剪;钳,夹住 n.夹,钳;回形针 sincere a.诚挚的,真实的,诚恳的 engine n.发动机,引擎;火车头 sword n.剑,刀;武力 weigh v.称…重量,称;重达;考虑,权衡 definite a.明确的;一定的;意志坚强的,立场坚定的 found vt.建立;创立;创办;使有根据;铸造;熔制 lover n.爱好者;(pl.)情侣 tempo n.节奏,行进速度;(音乐的)速度 critic n.批评家,评论家 remarkable a.值得注意的;显著的,异常的,非凡的 capsule n.胶囊;太空舱 popular a.流行的,通俗的,大众的;广受欢迎的 wherever conj.无论在哪里 ad.无论在哪里,究竟在哪里 uncover v.揭开,揭露 across prep.横过,越过;在的对面 ad.横过,穿过 those pron./a.[that的复数]那些;那些人(东西) excel vi.胜过其他;擅长 vt.胜过,优于 premier n.首相,总理 committee n.委员会,全体委员 overturn n.倾覆,破灭,革命 v.打翻,推翻,颠倒,翻倒 well ad.好,令人满意地;很 int.哎呀,好啦,嗯 failure n.失败,不及格;失败者;故障,失灵;未能 machine n.机器,机械 v.用机器加工 it pron.它;[作无人称动词的主语] toy n.玩具 vi.(with)漫不经心地考虑;摆弄 rim n.(圆物的)边,边缘;(眼镜)框 nurse n.护士,保姆 v.护理,看护 approximate a.近似的 vi.(to)接近 national a.民族的,国家的,国立的 read v.朗读;阅读 vt.辨认,观察 vi.读到,获悉 federal a.联邦的;联邦制的;联合的;同盟的 susceptible a.易受影响的;易受感动的;易受感染的 neutral a.中立的;中性的,中和的 different a.差异的,差异的,不同的 repeatedly ad.重复地,再三地 foundation n.基础,根本,建立,创立;地基,基金,基金会 carpenter n.木工,木匠 wire n.金属线,电线;电报,电信 v.发电报(给) conjunction n.接合,连接,联合;连(接)词 presently ad.一会儿,不久;现在,目前 bowl n.碗(状物),钵 road n.路,道路,途径 dull a.单调的;迟钝的,愚笨的;不锋利的 fortunate a.幸运的,侥幸的 path n.小路,小径;路线,轨道 representative n.代表,代理人 a.(of)典型的,有代表性的 july n.七月 passer-by n.(pl.passers-by)过路人 november n.十一月 in prep.在…里(内,上);用…(表示)ad.进,入 story n.故事,传说,小说;(=storey)楼层 thorn n.刺,荆棘 manual a.手的,手工做的,体力的 n.手册,指南 hay n.干草 pair n.一对,一双;一副;夫妇 v.配对,成对 revolutionary a.革命的,革新的 n.革命者 limit n.界限,限度,范围 v.(to)限制,限定 very ad.很,非常;完全 a.正是的;真正,真实的 forecast v./n.预测,预报 abroad ad.到国外,在国外;在传播,在流传 ahead ad.在前面(头);向(朝)前;提前 candidate n.候选人,候补者;报考者 shore n.海滨,湖滨 harmony n.协调,和谐;融洽 genius n.天才 often ad.常常,经常,通常 air n.空气;(复数)神气 vt.(使)通风;晾干 painful a.疼痛的,使痛苦的,费力[心]的,棘手的 flu n.(influenza)流行性感冒 formulate v. 用公式表示;规划;设计;系统地阐述 elder a.年长的,资格老的 n.长辈 disrupt vt.使混乱,使崩溃,使分裂,使瓦解 housing n.住房,住房供给;(外、阀)壳,防护罩 deed n.行为,行动;功绩,事迹;证书;契据 friction n.磨擦,摩擦力 landlady n.女房东,女地主 acknowledge vt.承认;接受;告知(信件等的)收到;答谢 numerical a.数字的,用数字表示的,数值的 smell n.气味;嗅觉 v.嗅,闻到;散发(…的)气味 pastime n.消遣,娱乐 intermediate a.中间的,居间的;中级的 n.中间体,媒介物 adolescent n.青少年 a.青春期的,青少年的 physicist n.物理学家 humor n.(humour)幽默,诙谐 meaning n.意思,意义,含义;重要性,价值 meat n.(食用)肉类 oak n.橡树,橡木 a.橡木的 extensive a.广大的,广阔的 help v.帮(援)助;有助于;[呼救]救命n.帮助(手) fashion n.流行式样(或货品),风尚,风气;样子,方式 seem v.好像,似乎 loss n.丧失,遗失;损失,损耗,亏损;失败 princess n.公主,王妃 temperature n.温度,体温;热度,发烧 architecture n.建筑,建筑学;建筑式样或风格,建筑物 liver n.肝,肝脏 soccer n.足球 secretary n.秘书,书记;部长,大臣 switch n.开关;转换;鞭子 v.转变,转换;抽打 thirteen num./a.十三 pron.十三(个,只...) productivity n.生产率 recede v.退回,后退;收回,撤回;跌落,缩减,贬值 key n.钥匙;答案;关键;键 a.主要的,关键的 label n.标签 v.把...称为;用标签于;用标签标明 electron n.电子 stationery n.文具 channel n.海峡,水道;信道,波道;路线,途径 queer a.奇怪的,古怪的 expansion n.扩张,膨胀;张开,伸展 attach v.系,贴,装,连接;使成为一部分;使依恋 estimate v./n.估计,估价;评估 offend v.犯罪,冒犯,违反,得罪,使...不愉快 snake n.蛇 privacy n.(不受干扰的)独处,自由,隐私;私生活 tall a.(身材)高的,高大的;夸大的,离谱的 stack n.堆,一堆 v.堆积,堆起 skeleton n.骨骼;骨架,框架;梗概,提要 voltage n.电压 cigaret n.(cigarette)香烟,纸烟,卷烟 leaflet n.小叶,嫩叶;传单,活页 manage v.经营,管理,处理;设法,对付;操纵,运用 lateral n.侧面的,旁边的 quilt n.被子 gauge n.标准尺寸;规格;量规,量表 v.测量 surplus n.过剩,剩余;余款,余额 a.过剩的,剩余的 chill n.寒冷,寒气,寒战 v.使寒冷 life n.生命,生存;一生,寿命;生活;生物 six num.六 pron./a.六(个,只...) downstairs ad.在楼下,往楼下 mood n.心情,情绪;语气 aggravate vt.加重(剧),使恶化;激怒,使恼火 contact v./n.(使)接触,联系,交往 entail vt.使承担;需要;把(疾病等)遗传给;限定 site n.位置,场所,地点 avail n.[一般用于否定句或疑问句中]效用,利益 ingenious a.机敏的;有独创性的;精致的;精巧制成的 none pron.没有任何人(东西);都不 ad.一点也不 additional a.额外的,附加的,另外的 creative a.有创造力的,创造性的 transmission n.播送,发射;传动,传送 top n.顶,顶端;首位;顶点 a.最高的;顶上的 trial n.讯问,审讯;试验;试用;尝试 prisoner n.囚犯 librarian n.图书管理员 disclose v.揭示,泄露 age n.年龄;时代;老年;长时间 v.(使)变老 cruel a.残忍的,残酷的 stale n.变质的,不新鲜的;陈旧的,陈腐的 relative a.相对的,比较的,有关系的 n.亲戚,关系词 vibrate v.(使)振动,(使)摇摆;受…而感动 guilty a.(of)有罪的,内疚的 accommodation n.(accommodations)住宿,留宿;膳宿供应 fable n.寓言 hospital n.医院 greet v.致敬,敬意,迎接;扑(鼻),入(耳),触(目) grip v./n.紧握,抓紧;掌握 qualitative a.性质上的,定性的 canvas n.帆布;帆布画布,(帆布)油画 presence n.出席,到场,存在,在 inference n.推论,推理,推断;结论 painting n.上油漆,着色;绘画;油画;画法 parasite n.寄生虫,食客 former a.以前的,在前的 pron.前者 hurt n.伤痛,伤害 v.刺痛,伤害;伤…的感情 ascertain vt.确定,查明,弄清 permission n.允许,同意 giggle vi./n.痴笑;咯咯地笑 vt.咯咯地笑着说 bare a.赤裸的,空的;稀少的,仅有的 v.露出,暴露 aesthetic a.(esthetic)美学的,艺术的;审美的 fertilizer n.(fertiliser)肥料 breed v.(使)繁殖,生殖;产生;教养,抚养 n.品种 other a.另外的,其他的 n./pron.另一个人(或事) draw v.拉;画;汲取;引出;(to)挨近 n.平局;拖曳 lever n.杆,杠杆,手段,途径,工具 sentence n.句子;判决,宣判 v.宣判,判决 hitherto ad.到目前为止,迄今 sunset n.日落,傍晚;晚霞 waist n.腰,腰部 nonetheless ad.[nevertheless]虽然如此, 但是 standard n.标准,规则 a.标准的 virtue n.德行,美德;贞操;优点;功效,效力 shuttle n.往返汽车/列车/飞机;穿梭 v.往返穿梭 mysterious a.神秘的,可疑的,难理解的 hostile a.敌对的,敌方的,敌意的 progressive a.进步的,先进的;前进的 spaceship n.宇宙飞船 sympathetic a.有同情心的;赞同的;n.交感神经 endure v.忍受,持久,持续 revolt v./n.反抗,起义 process n.过程,进程;工序,制作法;工艺 v.加工,处理 tackle n.滑车;用具,器械 v.处理,解决;抱住,抓住 wait v.(for)等待;(on)侍候 n.等候,等待时间 dessert n.正餐后的水果或甜食 over ad.在上方;遍及地 prep.在的上方 a.结束的 tragic a.悲剧的,悲惨的 underestimate vt.低估,看轻 pencil n.铅笔 vt.用铅笔写 pray v.请求,恳求;祈祷,祈求 ray n.光线,射线 tribe n.种族,部落;(植物,动物)族,类 boom v.迅速发展,兴旺;发出隆隆声 output n.产量,输出(量) beach n.海滩,湖滩,河滩 relation n.关系,联系;亲属,亲戚 board n.板,木板;全体委员;伙食 v.上船(车,飞机) cruise v.巡航;以节省燃料的速度前进 n.乘船巡游 recur v.(尤指不好的事)一再发生;重现 attract vt.引起的注意(或兴趣等),吸引;引起;激起 mammal n.哺乳动物 bunch n.(一)簇,束,捆,串 spend v.花费;消耗,用尽;度过,消磨 film n.电影;胶片;薄膜,薄层 vt.把..拍成电影 fell v.击倒;打倒(疾病等);砍伐a.凶猛的;可怕的 romance n.传奇,爱情故事 highly ad.高度地,很,非常;赞许地 draft n.草稿,草案,草图 v.起草,草拟 embed vt.把…嵌(埋、插)入,扎牢;使深留脑中 fossil n.化石 digital a.数字的;数位的;手指的 n.数字 arithmetic n.算术,四则运算 chaos n.混乱,紊乱 toe n.脚趾,足尖 perplex v.使困惑,使费解,使复杂化 district n.地区,行政区;美国各州的众议院选区 avoid vt.防止,避免;逃避,避开 doubt n./v.怀疑,疑虑 barber n.理发师 southern a.南方的,南部的 tramp n./v步行;沉重的脚步声(走)v.践踏n.流浪者 responsible a.(for,to)应负责的;可靠的;责任重大的 handbook n.手册,指南 profitable a.有利可图的,有益的 politician n.政治家,政客 indicate v.指出,指示;表明,暗示 earn v.赚得,挣得,获得 pollute v.弄脏,污染 forehead n.前额;(任何事物的)前部 quarrel v.争吵,争论 n.争吵,争吵的原因 nephew n.侄子,外甥 limp a.柔软的,易曲的 v./n.蹒跚,跛行 rise v.升起;起立;上涨;起义 n.上涨,增高;起源 yours pron.[you的物主代词]你(们)的(所有物) enthusiasm n.热情,热心;狂热;积极性(for) bounce n./vi.(球)弹起,弹回;弹起,跳起;n.弹力 scale n.刻度;天平,磅秤;比例尺;规模;音阶;鱼鳞 collision n.碰撞;(利益,意见等的)冲突,抵触 everyday adj.每日的,日常的 research v./n.(into,on)研究,调查 participant n.参加者,参与者 a.有份的,参与的 explanation n.解释,说明 commonplace a.普通的,平庸的n.寻常的事物,平庸的东西 off ad.离开;在远处;脱开 prep.从,从...离开 movement n.运动,活动;移动,迁移 willing a.愿意的,乐意的,心甘情愿的 drop n.滴;落下;微量 v.落下;下降;失落 indifferent a.冷漠的,不关心的,不积极的 lash v.鞭打,摆动,捆扎 n.鞭子,鞭打,睫毛,讽刺 nearly ad.差不多,几乎 politics n.政治,政治学;政纲,政见 characterize v.(characterise)表示…的特性;描述…特性 glass n.玻璃;玻璃杯;镜子;(pl.)眼镜 sole a.单独的,唯一的 n.脚垫,鞋底 speech n.演说,讲话;言语,语言 advent n.(重要事件等的)到来,来临 pen n.钢笔,圆珠笔,作家,围栏 vt.写,关入栏中 erroneous a.错误的,不正确的 anywhere ad.无论哪里;(用于否定、疑问等)任何地方 fear n.害怕,恐惧;危险vt.畏惧,害怕,担心 furnish v.供应,提供;装备,布置 quench v.熄灭,扑灭,压制,抑制,止渴 repression n.压抑,压制,镇压 a art.一(个);每一(个);(同类事物中)任一个 gaze v./n.凝视,注视 bosom n.胸,胸部;胸怀;内心;a.亲密的 want vt.想要;希望;需要;缺,缺少 n.需要;短缺 outline n.轮廓,略图;大纲,梗概 v.概述,略述 hike n.徒步旅行;增加vi.徒步旅行vt.提高 suspicious a.(of)可疑的,多疑的,疑心的 instead ad.代替,顶替 lace n.花边;带子,鞋带 v.系带,扎带 whom pron.谁;哪个人(who的宾格) anticipate vt.预料;期望;预先考虑;抢先;提前使用 relationship n.关系,联系 hang v.悬挂,垂吊;吊死,绞死 nightmare n.恶梦;可怕的事物,无法摆脱的恐惧 installment n.(instalment)分期付款;(连载的)一期 inland a./ad.国内,内地,内陆 excitement n.刺激,激动,兴奋 disguise n./v.假装,伪装 baggage n.行李 compensation n.补偿(或赔偿)的款物;补偿,赔偿 charter v.租船,租车,租用飞机;n.宪章,特许状 sportsman n.爱好运动的人;运动员 guarantee n.保证,保证书 v.保证,担保 tight a.紧的;紧身的,装紧的;密封的 ad.紧紧地 disgrace n.失宠,耻辱 v.使失宠;玷辱,使蒙羞 absolute a.绝对的,完全的;确实的,肯定的 chairman n.主席,议长,会长,董事长 row n.(一)排,(一)行;吵嚷 v.划(船等),荡桨 kin n.家族,亲属,血缘关系 a.亲属关系的,同类的 whistle n.口哨,汽笛;口哨声,汽笛声 v.吹口哨;鸣笛 pin n.钉;大头针,别针,徽章 v.(up)钉住,别住 integrate v.(into,with)(使)成为一体,(使)结合在一起 snowstorm n.暴风雪 blouse n.女衬衣,短上衣,宽阔的罩衫 tablet n.药片;碑,匾 tomb n.坟,冢 heroin n.海洛因 remark n.(about,on)评语,意见 v.(on)评论;注意到 theme n.题目,主题;主旋律,基调 masterpiece n.杰作,名著 majesty n.雄伟,壮丽,庄严,威严;最高权威,王权 clause n.(正式文件或法律文件的)条款;从句,分句 thigh n.大腿;股骨 prolong v.拉长,延长,拖延 supermarket n.超级市场 ruin v.毁灭;(使)破产 n.毁灭,崩溃;(pl.)废墟 diploma n.毕业文凭,学位证书 grace n.优美,文雅;恩惠,恩泽;宽限,缓刑;感恩祷告 sparkle v.发火花,闪耀 february n.二月 industrialize v.(industrialise)(使)工业化 necklace n.项链,项圈 fracture n.裂缝(痕);骨折 v.(使)断裂,(使)折断 throat n.咽喉,嗓子 missile n.导弹,发射物 coarse a.粗糙的,粗劣的;粗鲁的,粗俗的 flat a.平坦的,扁平的,平淡的 n.一套房间;平面 conscientious a.审慎正直的,认真的,本着良心的 original a.最初的,原文的;新颖的 n.原物,原作,原文 pail n.桶, 提桶; 一桶的量 sky n.天空;[pl.]天色;气候 arrogant a.傲慢的,自大的 zinc n.锌 promising a.有希望的,有前途的 salvation n.拯救,救助;救济(者,品),救助工具;救世主 shoulder n.肩,肩部 v.肩负,承担 vapour n.(vapor)汽,(水)蒸气 flourish n./v.繁荣,茂盛,兴旺 soda n.苏打,汽水 solemn a.庄严的,隆重的;严肃的 merchandise n.商品,货物 particular a.特殊的,苛求的,个别的n.详情,细节,特色 amiable a.和蔼可亲的,友善的,亲切的 inlet n.水湾,小湾;进口,入口 layman n.外行 apology n.道歉,认错,辩解,辩护 actress n.女演员 dentist n.牙医 arm n.手臂,扶手,臂状物 v.武装;配备 n.武器 ecology n.生态学 shirt n.衬衫 circle n.圆,圆周;集团;周期,循环 v.环绕,旋转 toward prep.(towards)朝,向;将近;对于;为了 old a.年老的;…岁的;长时间的,老的;过去的 democratic a.民主的 orientation n.方向,方位,定位,倾向性,向东方 fabric n.织物;织品;结构;构造;建筑物 reduction n.减小,减少,缩小 exotic a.奇异的;异国情调的;外(国)来的 put vt.放,搁,置;表达;使处于...状态,记下 hurt n.伤痛,伤害 v.刺痛,伤害;伤…的感情 intersection n.相交,交叉;道路交叉口,十字路口 displace v.移置,转移;取代,置换 calculate v.计算,推算;计划,打算 reason n.原因,理性,理智 v.推理,说服,辩论,讨论 urgent a.急迫的,紧要的,紧急的 flock n.(一)群,(禽,畜等的)群;大量 v.群集,成群 cue 暗示, 提示, 球杆 lip n.嘴唇 residence n.住处,住宅 trademark n.商标;特征 vt.注册的…商标 kid n.小孩,儿童 v.戏弄,取笑 strong a.强壮的,强大的;强烈的,浓的 harassment n.骚扰,扰乱;烦恼,烦乱 repertoire n.节目,全部剧目,保留剧目,全部技能 rotten a.腐烂的,腐朽的 essay n.文章,短文 football n.足球 van n.有篷汽车;有篷货运车厢 analyse vt.(analyze)分析,分解 aloud adv.出声地,大声地 sink v.(使)下沉,下落 n.水槽,水池 caress vt./n.爱抚,抚摸 depend v.(on)取决于,依靠,信赖,相信 contempt n.轻视,藐视;受辱,丢脸 musician n.音乐家,乐师 advocate n.辩护者,拥护者,鼓吹者 vt.拥护,提倡 hall n.礼堂,会堂,办公大楼,门厅 sprinkle n.洒,喷,淋 clarify v.澄清,阐明 doorway n.门口 disease n.疾病 backward a.向后的,倒行的;迟钝的 ad.向后,朝反方向 orphan n.孤儿 ambition n.对(成功、权力等)的强烈欲望,野心;雄心 little a.小,幼小;不多的 ad./n.不多,几乎没有 adapt vt.使适应,使适合;改编;改写 vi.适应 broad a.宽的,广阔的;广大的;宽宏的,豁达的 postcard n.明信片 tractor n.拖拉机,牵引车 hug v./n.热烈拥抱,紧抱 invention n.发明,创造,发明物

anyhow ad.不管怎么说,无论如何;不论用何种方法 beard n.胡须 blossom n.花(簇);花期;青春 vi.开花;展开;繁荣 mother n.母亲 upper a.上面的;上部的,较高的 headache n.头痛 profitable a.有利可图的,有益的 foundation n.基础,根本,建立,创立;地基,基金,基金会 assess vt.(为征税)评估(财产、收入);征税;评价 fund n.资金,基金;存款,现款;(知识等的)累积 water n.水 vt.浇灌;给…饮水 vi.流泪,加水 promise v.允许,答应;有…可能n.承诺;希望,出息 nevertheless conj.(nonetheless)然而,不过ad.仍然,不过 fluctuate v.(使)波动;(使)起伏 diagram n.图表;图解 prohibit v.禁止,不准;阻止 disposition n.排列,部署;性格倾向;倾向,意向 wealthy a.富有的,丰裕的,充分的 n.富人,有钱人 hum v.哼曲子;发嗡嗡声;忙碌n.嗡嗡声,嘈杂声 worth n.价值 a.值…的,价值…的,值得…的 despise v.轻视,蔑视 construct v.建设,建造,构造;创立 keen a.锋利的;敏锐的;敏捷的;(on)热心的,渴望的 valley n.(山)谷;流域 summon v.召唤;传讯,传唤;鼓起(勇气),振作(精神) consecutive a.连续的;连贯的;顺序的 corresponding a.符合的,相应的,对应的 quite ad.十分,完全;相当,颇;的确,真正 rebellion n.叛乱,反抗,起义 hypothesis n.假说,假设,前提 overcoat n.外衣,大衣 memorial a.记忆的,纪念的 n.纪念物,纪念碑,纪念馆 sauce n.酱汁,调味汁 circumference n.圆周,周围 flee v.逃走;逃避 forth ad.向前;向外,往外 progress v./n.进步,进展;前进 levy n.征收,征税,征兵 v.征收,征集,征用 neck n.颈脖 product n.产品,产物;乘积 fragment n.碎片,小部分,片断 leadership n.领导 percentage n.百分数,百分率,百分比 direction n.方向,方位;指令,说明 regulation n.规则,规章;调节,校准;调整 click n.滴答声;vi.发出滴答声 disappear v.不见,消失 halt n.止步,停步,停止前进 v.止步,(使)停止 witness n.目击者,证人;证据,证明 v.目击,目睹;作证 oven n.炉,灶,灶箱 coast n.海岸,海滨 blaze n.火焰;火光;闪光,光辉 v.燃烧,冒火焰 anxiety n.挂念,焦虑,焦急,忧虑;渴望,热望 fade v.褪色;衰减,消失n.淡入(出)n.乏味(平淡)的 drag v.拖,拖曳 handkerchief n.手帕 below prep.在…下面,在…以下 ad.在下面,向下 transparent a.透明的,透光的;易理解的;明显的 discipline n.纪律,学科 preliminary a.预备的,初步的 engineering n.工程学 exterior a.外部的,外面的 n.外部 congress n.(代表)大会;(美国等国的)国会,议会 series n.一系列,连续;丛书 avert v.防止,避免 ;转移(目光、注意力等) pretend v.假装,假托,借口,(在演戏中)装扮 costume n.(流行的)服饰;戏装,(特定场合的)套装 glove n.手套 car n.汽车,车辆,车;(火车)车厢 better a.较好的 ad.更好(地) v.改良 n.较佳者 discriminate v.区别,辨别;(against)有差别地对待,歧视 freight n.货物,货运,运费 membership n.会员资格,成员资格 surge vi.汹涌;彭湃;蜂拥而至 n.巨浪;汹涌;彭湃 date n.日期,年代 v.注明…的日期 n./v.约会 subordinate a.(to)次要的,从属的;下级的 still a.静止的,寂静的 ad.还,仍然;更;安静地 predominant a.(over)占优势的;主要的,突出的 add vt.加;增加(进);进一步说/写 vi.(to)增添 fund n.资金,基金;存款,现款;(知识等的)累积 cotton n.棉花;棉线,棉纱;棉制品 undermine v.暗中破坏,逐渐削弱;侵蚀…的基础 roar n./v.吼叫,怒号;轰鸣,咆哮 class n.班级,年级;种类,等级,阶级;(一节)课 cherry n.樱桃(树) cough v./n.咳嗽 indispensable a.(to,for)必不可少的,必需的 senior a.年长的;地位较高的 n.(大学)四年级学生 uneasy a.不安的,焦虑的 tool n.工具,用具;方法,手段 up ad.向上,...起来;...完;起床 prep.向上 specification n.详述;(常pl.)规格,说明书,规范 title n.书名,标题;头衔,称号 ridiculous a.荒谬的,可笑的 narrative a.叙述性的 n.叙述 more a.更多的 n.更多的人(或东西) ad.更,更多 thread n.线,细丝;线索,思路;螺纹 v.穿线,穿过 rainbow n.虹 monthly a.每月的 ad.每月一次,按月 n.月刊 nearby a.附近的 ad.在附近 prep.在…附近 similar a.(to)相似的,类似的 toss vt.向上掷/扔;摇摆,颠簸 n.投,扔;摇动 cocaine n.可卡因,古柯碱(用作局部麻醉剂) design v.设计;构思;绘制;图案;企图 n.设计,图样 lure n.吸引力,魅力,诱惑物 vt.引诱,吸引 pool n.水池,游泳池;合资经营v.合伙经营,联营 array n.大量;排列;盛装 v.列阵;装扮;排列 forum n.论坛,讨论会 emit vt.发出;放射;吐露;散发;发表;发行 via prep.经;通过;凭借 dome n.圆屋顶 noise n.喧闹声,噪声,吵嚷声 village n.村,村庄 clean a.清洁的,干净的v.除去..污垢,把...弄干净 reveal v.展现,显示,揭示,揭露,告诉,泄露 expertise n.专门知识(或技能等),专长 undoubtedly ad.无疑,必定 unemployment n.失业,失业人数 consume vt.消耗;吃完,喝光;(with)使着迷;烧毁 resistant a.(to)抵抗的,有抵抗力的 butcher n.屠夫,卖肉者 majority n.多数,大多数,成年,法定年龄 great a.伟大的;重要的;大量的;很好的;美好的 bird n.鸟,雀;女人;嘘声 oblige v.强迫,迫使;责成;(使)感激,施恩于 darling n.心爱的人,亲爱的 prevail v.(over,against)取胜,占优势;流行,盛行 reservoir n.水库,蓄水池 for prep.为了;给;代替;向;支持 conj.因为? behind prep.在...的背后,(遗留)在..后面;落后于 snap v.啪地移动;(使)突然断开,断开(成两截) ear n.耳,耳朵;听力,听觉;穗 preside v.(at,over)主持 domestic a.家里的;本国的;驯养的 commence vt.开始 vi.获得学位 notwithstanding prep./ad./conj.尽管 start v.开始;动身;吃惊;开办,开动 n.开端;惊起 sanction n./v.批准,同意,支持,认可 n.处罚,制裁 favorite n.(favourite)最喜欢的人或物 a.喜爱的 optional a.可以任选的,随意的,非强制的 altogether ad.完全,总之,全部地;总共;总而言之 vegetarian n.素食主义者 benign a.(病)良性的,(气候)良好的,仁慈的,和蔼的 glare vi.怒目而视;发射强光 n.强光;怒视;炫耀 rural a.乡下的,田园的,乡村风味的 practitioner n.实践者,从事者;(医生或律师等)开业者 defect n.过失;缺点;不足 beautiful a.美的,美丽的;出色的,完美的 devil n.魔鬼 vitamin n.维生素 downward a.向下的 ad.(also downwards)向下,往下 intercourse n.交流,交往,交际,性交 considerable a.相当大(或多)的,可观的;值得考虑的 equality n.同等;平等;相等;等式;等同性 accidental a.偶然的;意外的;无意中的 several a.几个,若干,数个;各个的,各自的 sophomore (中学、大学)二年级学生 fright n.恐怖 luxury n.奢侈,华贵;奢侈品 a.奢华的,豪华的 lazy a.懒惰的,懒散的 hostess n.女主人,女主持人 specify v.指定,详细说明 napkin n.餐巾,餐巾纸,<英>尿布 writing n.写,写作;著作,作品 eve n.(节日等的)前夜,前夕 due a.(to)应支付的;(车,船等)预定应到达的 compete vi.比赛;竞争;对抗 durable a.持久的,耐久的 isle n.小岛(用于诗歌中) emperor n.皇帝 crash v./n.碰撞,坠落,摔坏 n.失败,瓦解;爆裂声 threaten v.恐吓,威胁;有…危险,快要来临 slack a.懈怠的,松驰的;萧条的 n.淡季;(pl.)便裤 deadly a.致命的;势不两立的; 极度的;必定的 frost n.霜,霜冻,严寒 jury n.陪审团;全体评审员 automatic a.自动(装置)的;无意识的;n.自动机械 habitat n.(动物的)栖息地,(植物的)产地 travel n.旅行 v.旅行;行进,传播 magnify vt.放大,扩大,夸大,夸张 bed n.床,床位;(苗)床,坛;河床,(湖、海的)底 priority n.先,前;优先,重点,优先权 subsidy n.补助金;津贴费 assemble vt.集合,召集;装配;收集 vi.集合,聚集 superficial a.表面的;肤浅的,浅薄的 pardon n.原谅,宽恕;请再说一遍 v.原谅,饶恕,赦免 topic n.话题,主题,题目 blow vi.吹,吹气,打气;吹奏;爆炸;n.打,打击 hour n.小时,钟点;时刻;课时,工作时间 homogeneous a.同种类的,同性质的,有相同特征的 exhaust v.使筋疲力尽,耗尽;抽完 n.排气装置;废气 group n.群,组 v.分组 lonely a.孤独的,寂寞的;荒凉的,人迹稀少的 police n.警察,警察机关 a.警察的 v.管辖 noble a.高尚的;贵族的,高贵的 n.贵族 sketch n.素描;略图,草图;梗概 v.绘略图,速写,写生 spoon n.匙,调羹 hinge n.合页,铰链 vi.依…而定 professor n.教授 locker n.更衣箱 soil n.泥土,土地,土壤 v.弄脏,(使)变脏 fruitful a.多产的;果实累累的,富有成效的 most a.最多的;大多数的 ad.最;极其 n.大多数 crab n.螃蟹,蟹肉 once ad.一次,曾经 conj.一(旦)…就… n.一次 cottage n.村舍,小屋,别墅 commerce n.商业,贸易;交际,交往 zip v.(用拉链或像拉链那样)合上或打开 remedy n.药品;治疗措施 v.治疗,医治;纠正,补救 justice n.公正,公平;审判,司法 year n.年,年度,学年 a./ad.每年,一年一次 successor n.接替的人或事物,继任者 slipper n.便鞋,拖鞋 massive a.大而重的,厚实的,粗大的;大规模的,大量的 stun vt.使…失去知觉;使目瞪口呆,使吃惊 horn n.(牛羊等的)角;号,喇叭;角状物;角制品 poultry n.家禽 progressive a.进步的,先进的;前进的 regret v./n.遗憾,懊悔,抱歉 installation n.安装,设置;装置,设备 streamline a.流线型的 vt.使成流线型;使合理化 chancellor n.(英)大臣;法官;(德、奥)总理;大学校长 farmer n.农民,农场主 successive a.接连的,连续的 pyramid n.金字塔 embed vt.把…嵌(埋、插)入,扎牢;使深留脑中 data n.(datum的复数)资料,数据 fearful a.可怕的,吓人的;害怕,担心,惊恐 renew v.(使)更新,恢复,重新开始,继续 weld v.焊接 n.焊接,焊缝 wide a.宽阔的;睁大的;远离的 ad.广阔地;偏差地 song n.歌唱,(虫、鸟等)鸣声;歌曲,歌词 experimental a.实验(性)的,试验(性)的 deteriorate v.(使)恶化,(使)变坏 office n.办公室,办事处;职务,公职;部,局,处 spill v.溢出,溅出 n.摔下,跌下 thereby ad.因此,从而 western a.西方的,西部的 window n.窗,窗口 fasten v.扎牢,使固定 trash n.垃圾;拙劣的作品;渣滓,败类 lawyer n.律师 harvest n.收获,收成;成果,后果 v.收获,收割 man n.(pl.men)人;人类(单数,不加冠词);男人 increasingly ad.不断增加地,日益 palm n.手掌,掌状物,棕榈vt.与…握手,藏…于掌中 pick v.拾,采,摘;挑选,选择 n.镐,鹤嘴锄 reliable a.可靠的,可信赖的,确实的 investment n.投资,投资额 hotel n.旅馆 gravity n.重力,引力;严肃,庄重 wicked a.坏的;邪恶的;不道德的;恶劣的;淘气的 pillar n.柱,台柱,栋梁 parade n./v.游行,夸耀n.检阅,阅兵式v.使列队行进 huddle n./v.拥挤;聚集v.(因寒冷、害怕而)缩成一团 random a.随机的,随意的 n.随机,随意 thesis n.(pl.theses) 论文;论题;论点 sheep n.(绵)羊;易受人摆布的人 trail n.踪迹,痕迹;小路 v.追踪,跟踪;拖,拖曳; favorable a.(favourable)赞许的,有利的,讨人喜欢的 frame n.框架;体格;骨架;组织;机构 v.设计;制定 radar n.雷达 replacement n.取代,替换,替换物,代替物 comparative a.比较的,相当的 device n.装置,设备,仪表;方法,设计 prick n./v.刺伤,刺痛,刺孔 senate n.参议院,上院 denounce vt.公开指责,公然抨击;谴责 pavement n.人行道 down ad.下;由大到小 prep.沿着…而下 a.向下的 inner a.内部的,里面的;内心的 tin n.罐头;锡 a.锡制的 vt.镀锡于 activity n.活动;活力;能动性; clear a./ad.清晰的(地)vt.清除;使清楚vi.变清澈 laptop n.膝上型电脑 prince n.王子,亲王 remains n.(pl.)剩余,残余,遗迹 gown n.长袍,特殊场合穿的长服 grey n./a.(gray)灰色(的) useful a.有用的,实用的;有益的,有帮助的 ago ad.(常和一般过去时的动词连用)以前,…前 cashier n.收银员,出纳员 pot n.罐,壶 problem n.问题,疑难问题;思考题,讨论题 again ad.再次,另一次;重新;除此,再,更,还 afternoon n.下午,午后 intermittent a.间歇的,断断续续的 fly n.飞行;苍蝇 v飞行;飘杨 a.机敏的 foster vt.养育;收养;怀抱;鼓励 a.收养的 n.养育者 paradigm n.典范; 范例; 示例 slow a.慢的,不活跃的 v.(down)(使)放慢,减速 communicate v.传达,传送;交流;通讯,通话 blush v./n.脸红 extent n.广度,宽度,长度;程度,限度 whale n.鲸;庞然大物 word n.词,词语;言语,话;谈话;消息,信息 legacy n.遗产,遗赠;先人(或过去)留下的东西 visual a.看的,看得见的;视觉的 cast v.投,扔,掷,抛;铸造;投票;n.演员表 than conj.(用于形容词,副词的比较级之后)比 self n.自我,自己(pl.selves) coil v.卷,盘绕 n.(一)卷,(一)圈;线圈,绕组 elapse vi.(时间)溜走;(光阴)逝去 bill n.账单;招贴,广告;(人员,职称等的)表;钞票 childhood n.幼年,童年 discuss vt.讨论,商议 attorney n.(业务或法律事务上的)代理人;辩护律师 textbook n.课本,教科书 gamble n./v.投机,冒险;赌博 precise a.精确的,准确的 fraud n.欺诈,诈骗;欺骗(行为);骗子;假货 middle n./a.中间(的),当中(的) academic a.学院的,大学的;学术性的;理论的 paw n.爪 proceeding n.行动,进行,(pl.)会议录,学报 stream n.小河,溪流;流,一股,一串 v.流出,涌 robot n.机器人,自动机械 index n.(pl.indexes,indices)索引 v.附以索引 accomplish v.实现(计划等);达到(目的);完成(任务) cycle n.自行车;周期,循环 v.骑自行车;循环 personality n.人格,个性 fragile a.易碎的,脆的,易损坏的;虚弱的,脆弱的 desire v./n.愿望,欲望,要求 into prep.到...里面,进入;成为(表示变化) widespread a.分布广泛的,普遍的 probability n.可能性,或然性,概率 accident n.意外遭遇,事故;意外(因素) presumably ad.推测起来,大概 vowel n.元音,元音字母 vulgar a.粗俗的,庸俗的,本土的,通俗的,普通的 ancestor n.祖宗,祖先;原型,先驱 instant a.立即的;紧迫的;(食品)速溶的 n.瞬间,时刻 foreigner n.外国人 latter a.后者的;后一半的,接近终了的 n.后者 transform vt.改变,变换;变压;转化;改造,改造 attitude n.态度,看法(to, toward, about);姿势 thief n.(thieves)贼;小偷 appreciate vt.为...表示感激,感谢;欣赏,赏识,评价 lamb n.羔羊,小羊;羔羊肉 demonstrate v.论证,证实;演示,说明 daughter n.女儿 member n.成员,会员 ozone n.臭氧;(海岸等的)新鲜空气 simply ad.简单地;完全,简直;仅仅,只不过;朴素地 deliberate a.深思熟虑的,故意的 vt.研讨,商讨 comedy n.喜剧;喜剧性事件 lorry n.卡车,运货汽车 indication n.指出,指示;表明,暗示 opinion n.意见,看法,主张 republican a.共和的 offensive a.冒犯的,攻击的 n.攻势,进攻 clerk n.职员,办事员;店员 thrust vt.插入;猛推 n.插,推力 vi.刺,戳,冲 projector n.放映机,幻灯机,投影仪 wish v.希望;但愿;祝 n.愿望,希望;[pl.]祝愿 stare v.(at)盯,凝视 urge vt.催促;怂恿;强调 n.强烈欲望,迫切要求 same a.相同的 pron.相同的人(或物) ad.同样地 commit v.把…交托给,提交;犯(错误),干(坏事) probable a.很可能的,大概的;有希望的,可能的 king n.君主,国王 orient n.东方,亚洲 v.使朝东,为…定位,使适应 compensate v.(for)补偿,赔偿 tow vt.(用绳、链等)拖(车、船等) n.拖,牵引 deposit v.存放;使沉淀;付(保证金) n.存款;沉积物 military a.军事的,军用的,军队的 young a.年轻的,幼小的;没经验的 n.青年人 wit n.智力,才智,智慧 ribbon n.缎带,丝带,带,带状物 stocking n.长(统)袜 junk n.废物,旧货;舢板 polish v.磨光,擦亮;使优美,润饰 n.擦光剂,上光蜡 deliver v.交付,递送;发表,表达;释放;接生 singular a.非凡的,卓越的;单数的 acrobat n.特技演员,杂技演员 basis n.基础,根据 bullet n.子弹,枪弹 understanding n.理解,理解力;谅解 a.了解的,通情达理的 level n.水平,水准,等级 v.弄平,铺平 a.水平的 sulfur n.(sulphur)硫 ashore ad.上岸;在岸上,向岸上 whenever conj.无论何时,随时;每当 walk v.走,步行,散步;走遍 n.走,步行,散步 loop n.圈,环 sector n.部门,部分;防御地段,防区;扇形 bid v.祝愿;命令,吩咐;报价,投标 n.出众,投标 plane n.飞机;平面,水平面 outside ad.向外面 n.外部 a.外部的 prep.在…外 circulate v.(使)循环,(使)流通 wax n.蜡,蜂蜡 v.打蜡 humorous a.富于幽默感的,幽默的;滑稽的 could v.aux.(口语)(表示许可或请求)可以...,行 enclose v.围住,圈起,封入 watch v.观看;注视;看守;警戒 n.注视;手表;守护 employee n.雇工,雇员 regular a.有规律的;整齐的,匀称的,正规的,正式的 here ad.在(到,向)这里;这时;在这一点上 queue n.行列,长队 v.(up)排队,排队等待 width n.宽度;宽阔,广阔 tangle n.纠缠;缠结;混乱 v.(使)缠绕;变乱 form n.形状,形式;表格 v.组成,构成;形成 heat n.热,热度;热烈,激烈 v.(给)加热,(使)变热 south n.南,南方,南部 a.南方的,南部的 shadow n.阴影,影子,荫;暗处,阴暗 political a.政治的 smash v./n.打碎,粉碎 talk n.谈话;聊天;讲话;演讲 v.说话;交谈 generalize v.(generalise)归纳,概括;推广,普及 us pron.我们(we的宾格形式) interim a.中间的,暂时的,临时的 n.过渡时期,暂定 surname n.姓 thank vt.感谢int.[-s]谢谢n.[pl.]感谢(意) many a.许多的,多的 pron.许多人或物,许多 dawn n.黎明,拂晓 v.破晓;开始现出 perish v.丧生;凋谢;毁灭,消亡 huge a.巨大的,庞大的 fume n.(浓烈或难闻的)烟,气,汽 finally ad.最后,最终;决定性地 eminent a.显赫的;杰出的;有名的;优良的 obtain v.获得,得到 refer v.参考,查询;提到,引用,涉及;提交,上呈 dismiss v.免职,解雇,开除,解散 march n.三月(略作 mar.) hamburger n.汉堡包,牛肉饼 evident a.明显的,明白的 bee n.蜂,蜜蜂;忙碌的人 possibly ad.可能地,也许;无论如何 smile n.微笑,笑容 vi.微笑,露出笑容 foot n.(pl.feet)脚,足;英尺;底部 grind v.磨(碎),碾(碎) automation n.自动,自动化,自动操作 divide v.分,划分,分开;分配;(by)除 couple n.(一)对,双;夫妇; v.连接,结合 dependent a.依靠的,依赖的,从属的;随…而定的 metropolitan a.首都的,主要都市的,大城市 farther ad.更远地,再往前地 a.更远的 frontier n.国境,边境;尖端,新领域 herb n.药草,(调味用的)香草,草本植物 somehow ad.以某种方式,用某种方法;不知怎么地 lifetime n.一生,终生 wisdom n.智慧,明智;名言,格言 flexible a.柔韧的,易弯曲的,灵活的,能变形的 striking a.显著的;惹人注目的,容貌出众的 situated a.坐落在…的 whereas conj.而,却,反之 attack v./n.攻击,抨击;着手,开始 n.(病)发作 strenuous a.费力的,艰辛的;奋发的,努力的 following a.下列的,下述的,其次的,接着的 lead v.领导;领先;通向,导致 n.带领,引导;铅 nine num.九 pron./ad.九(个,只...) ten num.十 pron./a.十(个,只...) paint n.油漆,颜料 v.油漆;涂,涂漆;画;描绘,描述 resident n.居民,常住者 a.居住的 prison n.监狱 pedal n.踏板 v.踩踏板,骑自行车 well-known a.有名的,著名的 grab v./n.(at)抓(住);夺(得) socialism n.社会主义 sue v.控告,对…提出诉讼,起诉 swarm n.蜂群;一大群 vi.涌往;挤满;云集;成群移动 watch v.观看;看守;(for)窥伺,等待 n.看管;表 agriculture n.农业,农艺,农耕 black a.黑(色)的;黑暗的 n.黑(色);黑暗;黑人 enforce v.实施,执行;强制;支持,坚持(要求,主张等) banner n.旗(帜) cartoon n.漫画,幽默画;动画片 goose n.(pl.geese)鹅,雌鹅,鹅肉 breathe v.呼吸,吸入 shame n.羞耻,耻辱;可耻的人(或事物) v.使羞愧 sunday n.星期日 aerial a.(在或来自)空中的,航空的 n.天线 probability n.可能性,或然性,概率 tilt v.(使)倾侧;(使)倾斜 n.倾侧;倾斜 refugee n.(政治上的)避难者,难民 company n.公司;陪伴;宾客;连(队),(一)群,队,伙 sheet n.被单;(一)张,(一)片,薄片;大片 aunt n.姨母,姑母,伯母,婶母,舅母,阿姨 brim n.边缘,帽沿 second a.第二;次等的,二等的 n.秒 v.赞成,附和 thorough a.彻底的,完全的;精心的 pear n.梨子,梨树 melon n.甜瓜 complement n.补足物,船上的定员;补语 vt.补充,补足 aeroplane n.(airplane)(英)飞机 translation n.翻译;译文,译本 layout n.安排,布局,设计;规划图,布局图 external a.外部的;客观的;外国的;表面的;[医]外用的 accuracy n.准确(性);精确;准确度 shortcoming n.短处,缺点 mosquito n.蚊子 evidence n.明显;显著;根据;证据;迹象 overtake v.追上,超过,突然降临,压倒 frontier n.国境,边境;尖端,新领域 fox n.狐狸 magnetic a.磁的,有磁性的;有吸引力的 millionaire n.百万富翁 pharmacy n.药房,药剂学,制药业,配药业,一批备用药品 restraint n.抑制,制止 building n.建筑(物),房屋,大楼 [同]structure spade n.铁锹,铲子 according to prep.据/照…(所说、所写);按…,视… forget v.忘记,遗忘 allocate v.分配,分派;拨给;划归 velvet n.丝绒,天鹅绒 a.丝绒制的,柔软的 curse n.诅咒,咒语,祸因 vt.诅咒,咒骂,使受罪 feeble a.虚弱的,无力的 seldom ad.很少,不常 filter n.滤器,滤纸 monster n.怪物,妖怪,畸形的动植物 gender n.(生理上的)性;(名词、代词等的)性 astonish vt.使惊讶,使吃惊 ethnic a.种族的;人种学的 stuff n.原料,材料,东西 v.填满,塞满 bus n.公共汽车,总线,信息通路 medium n.(pl.media)媒体,方法,媒介,介质 a.中等的 intensity n.强烈,剧烈;强度 bathe v.游泳,洗澡,浸,弄湿 volume n.容积,体积;卷,册;音量 establishment n.建立,设立,建立的机构(或组织) resolute a.坚决的,果断的 balcony n.阳台;(电影院等的)楼厅,楼座 pill n.药丸 submarine n.潜水艇 a.水底的,海底的 furniture n.家具 stress n.压力;重要性;应力;重音vt.强调,重读 sin n.罪,罪恶 v.犯罪 previous a.先前的,以前的 decisive a.决定性的 mineral n.矿物,矿石 a.矿物 commodity n.(pl.)日用品;商品;农/矿产品;有用之物 lightning n.闪电 a.闪电般的,快速的 paste n.糊,浆糊 v.粘,贴 left n.左面,左方 a.左边的,左面的;在左方的 ending n.结尾,结局 spine n.脊柱,脊椎;(动植物的)刺;书脊 procession n.队伍,行列 obvious a.明显的,显而易见的 encyclopedia n.(encyclopaedia)百科全书 cow n.母牛,奶牛 theft n.偷窃(行为),偷窃罪 comic a.喜剧的,滑稽的n.连环漫画杂志;喜剧演员 tomorrow n.明天;来日,未来 ad.在明天,在明日 swan n.天鹅 vi.闲荡,游荡 land n.陆地,土地,国家 v.(使)靠岸(登陆,降落) easter n.复活节 glue n.胶,胶水 v.胶合,粘贴 waiter n.侍者,服务员 refuge n.避难处,藏身处 lame a.跛的,(辩解、论据等)无说服力的 whatsoever ad.(用于否定句中以加强语气)任何 depict v.描绘;描写,描述 usage n.使用,用法;习惯,习俗;惯用法 quest n.探寻,探求;寻求,追求 hear v.听见;审讯;(from)收到..的信/电话;听说 attention n.注意,注意力;立正;特别照顾;照料 rapid a.快,急速的 n.(pl.)急流,湍滩 subjective a.主观(上)的,个人的 positive a.肯定的,积极的,绝对的,无疑的,正的 term n.学期;期限,期间;(pl.)条件,条款;术语 drawback n.欠缺,缺点;退还的关税 panel n.面,板;控制板,仪表盘;专门小组 option n.选择(权),[商]选择买卖的特权 reassure v.使安心,使放心;使消除疑虑 everything pron.每件事,一切;最重要的东西 plough n.(plow)犁,耕地,犁过的地 v.犁,费力地前进 hot a.(炎)热的;辣的;急躁的;激动的;热衷的 reconcile v.使和好,调解,使调和;(to,with)使一致 article n.文章,论文;条款,条文;物件;冠词 signify v.表示,意味;要紧,有重要性 allege v.断言,宣称;指控 mean v.表示…的意思 a.卑鄙的;平均的n.平均值 pocket n.衣袋 a.袖珍的,小型的 v.把…装入袋内 ride v./n.骑,乘 category n.种类,部属,类目;范畴,类型 monitor n.班长;监听器,监视器 v.监控,监测 consolidate v.使加固,使加强;(把...)联为一体,合并 bizarre adj.异乎寻常的,稀奇古怪的 dimension n.尺寸,尺度;维(数),度(数) haul v.拖曳,拖运,用力拖 heart n.心(脏);内心,感情;热忱;中心,要点 myself pron.[反身代词]我自己;我亲自 advanced a.超前的,先进的;高级的;开明的;前进的 bud n.芽,花苞 v.发芽,含苞欲放 dispose v.(of)处理,处置;(for)布置,安排 hammer n.铁锤,槌,榔头 v.锤击,敲打 equivalent a.(to)相等的,等价的 n.相等物,等价物 oath n.誓言,誓约,诅咒 suspect v.猜想;怀疑;察觉 a.可疑的 n.嫌疑犯 chicken n.鸡肉;鸡,小鸡,小鸟 modest a.谦虚的,有节制的 major a.主要的n.成年人,专业学生,主修课程v.主修 frank a.坦白的,直率的 neighborhood n.(neighbourhood)邻居;四邻,街道 load v.装(货),装载 n.装载(量),负荷(量);(一)担 color n.(=colour)颜色;颜料;肤色 v.给…着色 fight v./n.打(仗),搏斗,斗争,战斗 apart ad.分离,离开,隔开 a.分离的,分隔的 mental a.精神的,思想的,心理的,智力的,脑力的 dial n.钟(表)面,刻度盘,拨号盘 v.拨号,打电话 smog n.烟雾 housework n.家务,家事(不可数) gracious a.亲切的,客气的;宽厚的,仁慈的 we pron.我们<主格> mine pron.(i的物主代词)我的(东西)n.矿 v.采矿 ham n.火腿 piece n.(一)件/片/篇;碎片v.(together)拼合,拼凑 rub v.擦,摩擦 eventually ad.终于,最后 support n./vt.支撑;支持;赡养;维持 n.支持者;支柱 survey v./n.俯瞰,眺望;全面审视,调查;测量图,勘定 brow n.眉(毛);额 button n.纽扣,按钮(开关) v.扣紧;扣上纽扣 forge v.锻造,伪造 n.锻工车间;锻炉 unity n.团结;统一,一致,整体 courtyard n.院子,庭院,天井 proficiency n.(in)熟练,精通 parachute n.降落伞 v.跳伞 lodge v.临时住宿,寄宿,寄存,容纳n.传达室,小旅馆 aggressive a.侵略的,好斗的,有进取心的,敢作敢为的 skill n.技能,技巧,手艺;熟练 even ad.甚至(更) a.均匀的;平的;相等的;偶数的 genetic a.遗传(学)的 n.[-s]遗传学 suburb n.市郊,郊区 education n.教育,培养,训练 alter vt.改变,更改;改做(衣服) vi.改变,变化 breach n.违反,不履行;破裂 vt.冲破,攻破 store n.商店,店铺;贮藏,贮备品 v.贮藏,贮备 conquest n.征服,征服地,掠取物 vanity n.虚荣心,浮华 host n.主人;旅店老板;节目主持人;一大群,许多 carry v.运送,搬运;传送,传播;领,带 lift v.升起,举起,消散 n.电梯,上升,免费搭车 degree n.程度;度数;学位;等级 correspondent n.记者,通讯员;通信者 escape n.逃跑,逃脱 v.逃跑;避开,避免 enrich v.使富足;使肥沃;装饰;加料于;浓缩 afterward ad.(afterwards)以后,后来 ditch n.沟,沟渠,水沟 soar vi.(指鸟等)高飞,翱翔;飞涨;高耸 shear v.剪,修剪 preposition n.介词 ascend vi.渐渐上升,升高vt.攀登,登上 loyal a.(to)忠诚的,忠贞的 database n.(databank)数据库 foolish a.愚笨的,愚蠢的 accordance n.一致,和谐,符合 crew n.全体船员,全体乘务员 climb v./n.攀登,爬 ever ad.曾经;永远;在任何时候;究竟 supplement n.补遗;增刊;附录 v.增刊,补充 pace n.步,步伐,步调,速度 v.踱步,用步测 constrain vt.限制,约束;克制,抑制 schedule n.时间表,进度表 v.安排,预定 hungry a.饥饿的,渴望的 tailor n.裁缝 v.缝制,剪裁 civilization n.(=civilisation)文明,文化 why ad./conj.为什么;…的理由 int.咳,哎呀 retention n.保留,保持,保持力,记忆力 amend vt.修改,修订,改进 really ad.确实,实在,真正地,果然 literally ad.照字面意义,逐字地;确实 duck n.鸭,鸭肉 v.迅速俯身;快速低头;躲避 magnitude n.大小,数量;巨大,广大 strict a.(with)严格的,严厉的;严谨的,精确的 diffuse v.扩散;传播 a.(文章等)冗长的,漫无边际的 quantitative a.数量的,定量的 nineteen num./a.十九 pron.十九(个,只...) transfer vt./n.转移;转换;转让;过户;迁移;改乘 wagon n.运货马车,运货车;敞蓬车厢 seemingly ad.外观上,表面上 alloy n.合金vt.将…铸成合金 principal a.最重要的,主要的n.负责人,校长;资本,本金 expect v.预期;期望,指望 plot n.秘密计划;情节 v.标绘,绘制;密谋,策划 boycott n./v.(联合)抵制,拒绝参与 position n.位置;职位;姿势,姿态;见解,立场,形势 quote v.引用,援引 paddle n.桨 v.用桨划 aspect n.样子, 外表, 面貌, (问题等的)方面 intrigue n.阴谋v.密谋,私通;激起…的兴趣;诡计取得 wise a.有智慧的,聪明的 frost n.霜,霜冻,严寒 formula n.(pl.formulae)公式;规则;分子式;药方 port n.港口 least a.最小的;最少的 ad.最小;最少 overlap v.重叠,与…交叠 n.重叠 master n.男主人;师傅;硕士 v.精通,控制 a.主要的 grasp v./n.抓住,抓紧;掌握,领会 desperate a.不顾一切的,铤而走险的;绝望的,危急的 while conj.当…的时候;而;虽然;尽管 n.一会儿 veto n./v.否决 cafeteria n.自助食堂 stake n.桩,标桩;赌注,利害关系 distract v.分散;使分心;打扰;使心情烦乱 gaol n.(jail)监狱;(不加冠词)监禁 vt.使…坐牢 host n.主人;旅店老板;节目主持人;一大群,许多 study vt.学习;研究;细看 vi.读书 n.学习;研究 platform n.平台,台;站台,月台;政纲,党纲 drain n.排水沟,阴沟;消耗,负担 v.排去,放干 haste n.匆忙,急速;草率 v.赶快;匆忙 applicable a.可应用(实施)的;适当的,合适的 he pron.他;(不论性别的)一个人 clock n.钟 vt.记录(时间、速度等),为…计时 revise v.修订,校订;修正,修改 reporter n.报告人,通讯员;记者,报导者 sculpture n.雕刻(术),雕塑(术);雕刻作品 library n.图书馆;藏书室;藏书,丛书,文库 driver n.驾驶员 deficiency n.缺乏,不足;缺点,缺陷 answer vt.回答,答复,答案 v.回答,答复,响应 admission n.允许进入;承认;入场费,入会费,入场券 goal n.目的,目标;守门员,球门;进球 spur n.靴刺,马刺;刺激,刺激物 v.刺激,激励 shoot v.发射;掠过,疾驰而过 n.嫩枝,苗,射击 census n.人口普查(调查) stamp n.邮票;印;跺脚;标志v.跺脚,顿足;盖章 disperse v.(使)分散;(使)散开;疏散 policy n.政策,方针 ordinary a.普通的,平凡的,平常的;平庸的 upgrade v.提升,使升级 readily ad.容易地;乐意地,欣然地 shampoo n.洗发膏,香波;洗发,洗头 v.洗发,洗头 stationary a.静止的,固定的 subject n.主题;学科 a.隶属的;易遭..的 v.使隶属 anguish n.(尤指心灵上的)极度痛苦,烦恼 constituent n.选民;成分,组分a.组成的,构成的 liable a.有...倾向的;可能遭受...的;有责任的 expenditure n.花费;(时间,金钱等的)支出,消耗 population n.人口,(全体)居民 combat v./n.战斗,搏斗,格斗 dwell v.住,居留 push v.推;催逼,逼迫 n.推,推力;促进,推进 cab n.出租车,出租马车;驾驶室 vi.乘出租马车 crane n.起重机,鹤 scrap n.碎片;废料 v.废弃,报废 pause v./n.中止,暂停 autonomy n.自治,自治权; drill v.练习;操练;钻孔 n.操练;练习;钻孔(机) evil a.邪恶的,罪恶的 n.邪恶,罪恶 resist v.抵抗,反抗;抗,忍得住,抵制 from prep.从,自从;由于;离;根据,按;去除 absurd a.荒谬的,荒诞的,荒唐可笑的;不合理的 exception n.例外,除外;反对;异议 sweet a.甜的;可爱的,美好的 n.(常pl.)糖果;甜食 sturdy a.坚定的,不屈不挠的;强健的,结实的 suffice v.充足,足够;vt.(食物等)使(某人)满足 silver n.银;银器;银币 v.镀银 fiction n.虚构,编造;小说 belly n.肚子,腹部;(像肚子一样)鼓起的部分,膛 privilege n.特权,优惠,特许 v.给予优惠,给予特权 scrape v.刮(掉),擦过,勉强通过 n.刮,擦痕,刮擦声 legislation n.法律(规);立法,法律的制定(或通过) line n.线;路线,航线;排;线路;界线 v.排队;加衬 around ad.在...周围,到处 prep.在..四周(或附近) brick n.砖块,砖;v.用砖围砌,用砖填补 thursday n.星期四 too ad.也,还;太,过于;很,非常 rarely ad.很少,难得,非常地 appointment n.约会,约定;任命,委派;委任的职位 mistress n.女主人;主妇;情妇,情人 carve v.(雕)刻 hers pron.[she的物主代词]她的(所有物) clarity n.清晰,明晰 incorporate v.合并,纳入,结合 a.合并的 fluent a.流利的,流畅的 dock n.船坞,码头 fake n.假货,赝品 a.假的,冒充的 v.伪造;伪装 polar a.两极的,极地的,南辕北辙的 n.极线,极面 superstition n.迷信,迷信的观念习俗 beforehand ad.预先,事先 fork n.叉,耙;叉形物;餐叉 factor n.因素,要素 suitable a.(for)合适的,适宜的 dorm n.(dormitory)[美][口]宿舍 clinic n.诊所 alternate a.交替的,轮流的 v.(使)交替,(使)轮流 hail v.下雹;欢呼,欢迎 n.雹 veteran n.老手,老兵 jargon n.行话 otherwise ad.另样,用别的方法;在其他方面conj.要不然 curve n.曲线,弯曲(物) v.弄弯,成曲形 horizon n.地平线;眼界,见识 centimetre n.(centimeter)厘米 scent n.气味,香味,香水,线索,嗅觉 v.嗅,发觉 civilize v.(=civilise)使文明,开化 zone n.地区,区域 v.分区,划分地带 nominate v.提名,任命 price n.价格,价钱;代价 v.标价 adventure n.冒险,冒险活动,奇遇 vt.大胆进行 raise v.举起,提升;增加;饲养;引起;竖起;提出 tray n.盘,碟,托盘 moreover conj./ad.再者,加之,而且 farewell int.再会,别了 n.告别 leading a.领导的,指导的;第一位的;最主要的 dye n.染料 v.染,染色 sandwich n.三明治,夹肉面包 v.夹入,挤进 dairy n.牛奶场,奶店 interval n.间隔,间歇;(幕间或工间)休息 discard vt.丢弃,抛弃,遗弃 hostess n.女主人,女主持人 flight n.飞翔,飞行;航班;航程;逃跑;楼梯的一段 questionnaire n.调查表,问卷 cradle n.摇篮;发源地 fortnight n.两星期 shiver v./n.战栗,发抖 enhance v.提高,增强 disable vt.使残废;使失去能力;丧失能力 accessory n.附件,附属品;(为全套衣服增加美感的)服饰 advertise vt.公告,公布;为...做广告 vi.登广告 routine n.例行公事,常规 a.常规的,例行的 hollow a.空的,中空的;空洞的,空虚的 v.挖空,凿空 shrug vt./n.耸肩(表示冷淡、怀疑、无奈、不满等) repel v.击退,抵制,使厌恶,使不愉快 postpone v.推迟,延期 heroic a.英雄的,英勇的,崇高的 shout v.大声叫,喊,呼出 n.呼喊,叫 sunshine n.日光,日照;晴天; gymnasium n.(gym)体育馆,健身房 unload vi.卸货;退子弹 vt.摆脱...之负担;倾销 bride n.新娘 diplomatic a.外交的,从事外交的;策略的,有手腕的 tractor n.拖拉机,牵引车 dislike n./v.不喜欢,厌恶 strife n.争吵;冲突,斗争;竞争 decimal a.十进的,小数的,十进制的 n.小数 silk n.丝,绸 traffic n.交通,交通量 feel v.触;认为 vi.摸上去有…感觉;摸索;觉得 competition n.竞争,比赛;角逐,较量;[总称]竞争者 pamphlet n.小册子 rug n.(小)地毯;围毯 defeat n.击败,战胜,失败 v.击败,战胜;使失败 method n.方法,办法 raid n/v..袭击,搜查 waitress n.女侍者,女服务员 die vi.死,死亡;(草木)枯萎,凋谢;渴望 storey n.(story)楼,层 thermal a.热的,热力的;(小规模的)上升气流 cell n.细胞;小房间;蜂房;电池 reckon v.计算,总计,估计,猜想,依赖 among prep.在…之中;在一群(组)之中;于…之间 chef n.(餐馆等的)厨师长,厨师 monkey n.猴子 tribute n.贡品;颂词,称赞,(表示敬意的)礼物 sober a.清醒的;认真的,冷静的,适度的 perspective n.透视画法,透视图;远景,前途;观点,看法 servant n.仆人 whoever pron.[引导名词从句]谁;无论谁;究竟是谁 war n.战争(状态);冲突 vi.作战 substance n.物质;实质,本质;主旨;财产,资产 forge v.锻造,伪造 n.锻工车间;锻炉 profession n.职业,专业,表白,宣布 bitter a.(有)苦(味)的;痛苦的,厉害的 incidence n.影响程度,影响范围;发生率 vicinity n.邻近,附近 radical a.基本的,重要的;激进的,极端的;根本的 wild a.野性的,野生的;野蛮的;狂热的;荒芜的 myth n.神话;虚构的理论 tendency n.趋势,趋向;倾向 scrutiny n.周密的调查;仔细看;监视;选票复查 predecessor n.前辈,前任 soldier n.士兵,军人 narrow a.狭窄的,狭的,狭隘的 poke n.刺,戳,懒汉,袋子 v.戳,刺,伸出,刺探,闲荡 peasant n.(不用于英国或美国)小农;佃农;农民 lively a.活泼的,活跃的;栩栩如生的,真实的 exchange v./n.(for)交换,兑换;交流,交易;交换台 bold a.大胆的,勇敢的;冒失的;黑体的,粗体的 eleven num.十一 pron./a.十一(个,只...) jump v./n.跳跃,跳动,跳过;暴涨,猛增 defence n.(defense)防御,保卫;防务工事;辩护 light n.光;灯 v.点燃;照亮 a.轻(快);淡;明亮 air-conditioning n.空调设备,空调系统 manipulate vt.(熟练地)使用,操作;(巧妙地)处理 mourn v.哀悼,忧伤 fore ad.在前面 a.先前的;在前部的 n.前部 prize n.奖赏,奖金,奖品 v.珍视,珍惜 person n.人,喜欢(或适应)..的人;人物;人称 refrain v.节制,避免,制止 n.(诗的)叠句 adjective n.形容词 a.形容词的,用作形容词的 software n.软件 humor n.(humour)幽默,诙谐 fancy n.爱好,迷恋 v.想象,幻想 a.花式的,奇特的 ban v.取缔,查禁;(from)禁止 n.禁止,禁令 message n.消息,信息,通讯,启示,教训,广告词,预言 intelligence n.智力,聪明;理解力;情报,消息,报导 texture n.(织物)质地;(材料)构造;结构;肌理 half n.半,一半 a.一半的,不完全的 ad.一半地 our pron.[we的所有格]我们的 call vt.叫,喊;打电话 vi.叫;访问 n.叫;号召 then ad.当时,在那时;然后,于是;那么,因而 rid v.(of)使摆脱,使去掉 forty num./a.四十 pron.四十(个,只...) stroll n.&v.漫步;散步;游荡 lend vt.借给,贷(款) every a.每一个的,每个的;每隔…的;全部的 equipment n.设备,器材,装置;才能 tour n.旅游,旅行;巡回演出/比赛 v.旅游 lumber n.木材,木料 shield n.防护物,护罩;盾,盾状物 v.保护,防护 congratulate v.(on)祝贺,向…致贺词 indulge v.放任,纵容,沉溺;使(自己)纵情享受 seed n.种子 v.播种;结实,结籽 accent n.口音,腔调;重音(符号)vt.重读 amplify vt.放大,增强;详述,详加解说 celebrate vt.庆祝;颂扬,赞美vi.庆祝,过节 mechanic n.技工,机修工 hill n.小山,山岗,高地;[pl.]丘陵(地带) vinegar n.醋 precedent n.先例 virgin n.处女 a.处女的;纯洁的;原始的;未使用的 nap n.小睡,打盹 dare v.敢,胆敢 insert v.插入,嵌入;登载 n.插入物 together ad.共同,一起;合起来,集拢地 listen vi.倾听(与介词to并用,方可置宾语) transplant n./v.移植(植物;组织,器官等);迁移; magnificent a.华丽的,高尚的,宏伟的 detail n.细节,详情 v.详述 adjust vt.调节;整顿,调整 vi.适应(to);使调节 escalate v.(使)逐步增长(或发展),(使)逐步升级 spear n.矛,枪 nose n.鼻子;(飞机,船等的)前端,突出部分 cry n.&v.叫,喊,哭;(鸟兽)叫,啼,鸣,嗥 customer n.顾客,主顾 prescription n.药方,处方 rot v.(使)腐烂,(使)腐败,腐朽 formidable a.强大的;令人敬畏的;可怕的;艰难的 heap n.(一)堆,大量,许多 v.(up)堆,堆起 ninety num.九十,九十个 extreme a.末端的,尽头的;极度的 n.极端;最大程度 studio n.画室;播音室;(电影)制片厂 hurricane n.飓风 noodle n.(常用复数)面条 stem n.茎,干 vt.堵(挡)住 vi.起源于,由…造成 sort n.种类,类别 v.分类,整理 graze vi.吃青草 vt.放牧;擦伤;掠过 .n.擦伤(处) brave a.勇敢的 v.勇敢地面对(危险等) alien n.外侨,外国人;外星人 a.外国的;相异的 framework n.构架;框架;结构;组织;机构 culture n.文化,文明;修养;耕种;栽培,培育; speed n.速度,快 v.迅速,前进,急行;加速,使加速 chapter n. 章;回,篇 fragile a.易碎的,脆的,易损坏的;虚弱的,脆弱的 bacon n.咸猪肉,熏猪肉 motor n.发动机,电动机 midst n.中间,当中 spring n.春;跳;泉,源泉;弹簧,发条 v.跳,跳跃 refute v.反驳,驳斥 network n.网状物;广播网,电视网;网络 skirt n.裙子;边缘,郊区 anyway ad.不管怎么说,无论如何;不论以何种方式 strength n.力,力量;实力;长处,优点;人力;兵力 nest n.窝,巢 v.筑巢 threat n.恐吓,威胁;坏兆头,危险迹象 slope n.斜坡,斜面;倾斜,斜度 v.(使)倾斜 impressive a.给人深刻印象的,感人的 unanimous a.全体一致的,一致同意的 detect v.察觉,发觉,侦察,探测 remind v.(of)提醒,使想起 riddle n.谜,谜语 few a.[表肯定]有些,几个;[表否定]几乎没有的 fifteen num.十五 pron./a.十五(个,只...) both prep.两者(都),双方(都) adj.两个..(都) transmission n.播送,发射;传动,传送 suppress v.镇压,压制;抑制,忍住;查禁 atmosphere n.大气(层);空气;气氛,环境;大气压 occurrence n.发生,出现;事件,事故,发生的事情 ruby n.红宝石 elderly a.较老的,年长的n.[the~]到了晚年的人 addict v.使沉溺;使上瘾 n.沉溺于不良嗜好的人 dividend n.红利,股息;回报,效益;被除数 biscuit n.饼干,点心 fitting a.适当的,恰当的 n.(常pl.)配件,附件;装配 comparison n.比较,对比,比喻,比拟 campaign n.战役;运动 frustrate vt.挫败,阻挠,使灰心 hunger n./v.饥饿;渴望 instance n.例子,事例,例证 history n.历史,历史学;来历,经历 remember v.记住;(to)转达问候,代…致意,代…问好 static a.(statical)静态的,静力的 ceiling n.天花板;(规定价格、工资等的)最高限额 lady n.女士,夫人 outdoor a.室外的,野外的 sociology n.社会学 booth n.电话亭,货摊 addition n.加,加法;附加部分,增加(物) journey n.旅行,旅程 v.旅行 persevere v.坚持,坚忍,不屈不挠 council n.理事会,委员会,议事机构 access n.进入;接入;到达;享用权;入口 vi.存取 responsibility n.责任,责任心;职责,任务 wreck n.失事船(或飞机)v.(船等)失事,遇难;破坏 how ad..(表示方法、手段、状态)怎样;如何 athlete n.运动员,体育家,身强力壮的人 agreement n.协定;协议;契约;达成协议;同意,一致 foresee v.预见,预知 brochure n.小册子 unique a.唯一的,独一无二的 send v.(sent,sent).打发;派遣 .送;寄出 boost n./ vt.提升;增加;抬高(价格);支援; civil a.公民的,市民的;民间的;民用的;有礼貌的 administer v.施行,实施;掌管,料理...的事务;给予 potential a.潜在的,可能的 n.潜能,潜力 surpass vt.超过,胜过 fact n.事实,实际 blind a.盲的,瞎的;盲目的 vt.使失明 n.百叶窗 maintenance n.维修,保养,维持,保持,生活费用 affiliate v.使隶属(或附属)于 n.附属机构,分公司 brisk a.轻快的;生气勃勃的;兴隆的 colleague n.同事,同僚 cancer n.癌 terrible a.很糟的;可怕的,骇人的;极度的,厉害的 pitch n.沥青;掷 v.用沥青覆盖;投掷,扔 right a.右的,正确的 n.右,权利ad.在右边,正确地 satisfaction n.满足,满意;乐事,愉快 electrical a.电的,电学的 moderate a.有节制的,中等的,适度的,温和的,稳健的 sweater n.毛衣,绒衣,厚运动衫 connect vt.连接;与…联系,接通(电话) vi.连接 wage n.(常pl.)工资,报酬 vt.进行,开展 brain n.(大)脑,骨髓;(pl.)脑力,智能 radius n.半径,半径范围,有效航程,范围,界限 mock v.嘲笑 a.假的,模拟的 n.(常pl.)模拟考试 monopoly n.垄断,专卖,专利权,专利事业 elementary a.初步的;基本的;[化]元素的;自然力的 bloom n.花(朵);开花(期) v.开花 review v.回顾,复习 n.回顾,复习;评论 abundant a.大量(充足)的;(in)丰富(富裕)的 moment n.片刻,瞬间,时刻 get v.获得,得到;使,使得;变得,成为;到达 foul a.污秽的;邪恶的 v.弄脏;妨害;犯规 n.犯规 drive v.开(车);驱;驱动,把(钉,桩)打入 n.驾驶 fraction n.碎片,小部分,一点儿;分数 optimistic a.乐观主义的 this pron.这(个) a.这(个);今 ad.这(样) lounge n.休息室,起居室,客厅 royalty n.皇家,皇族 quart n.夸脱 main a.主要的,总的 n.总管道;干线 bread n.面包 rob v.(of)抢劫,盗取;非法剥夺 decorate v.装饰,装璜,布置 brief a.简短的,简洁的 v.简短介绍,简要汇报 rhythm n.节奏,韵律 account a.叙述,说明;账目,账户 vi.说明,解释 possess v.占有,拥有 fruitful a.多产的;果实累累的,富有成效的 strip v.剥,剥去 n.窄条,条纹 legitimate a.合法的;合理的,合乎逻辑的 vt.使合法 bore v.钻(孔),挖(洞);烦扰 n.讨厌的人,麻烦事 resolution n.坚决,决心;决定,决议 toxic a.有毒的;中毒的 prejudice n.偏见,成见;损害,侵害 v.使抱偏见,损害 rubbish n.垃圾,废物;废话 petroleum n.石油 modern a.现代的,近代的,新式的 invalid n.病人,伤残人 a.有病的,伤残的;无效的 anxious a.焦虑的,担心的;急于(得到的),渴望的 valuable a.贵重的,有价值的 n.(pl.)贵重物品,财宝 script n.剧本(原稿);手稿,原稿;笔迹,手迹 simple a.简单的;单纯的,直率的;迟钝的,头脑简单的 code n.代码,代号,密码;法典,法规,规划 humiliate v.使羞辱,使丢脸[同]disgrace northern a.北方的,北部的 ripe a.熟的,成熟的;(for)时机成熟的 fore ad.在前面 a.先前的;在前部的 n.前部 wooden a.木制的;呆笨的 generous a.宽宏大量的,慷慨的 bracket n.(方)括号 tense n.时态 v.拉紧,(使)紧张 a.绷紧的,紧张的 nail n.指甲,爪;钉 v.将…钉牢,钉住 four num.四 pron./a.四(个,只...) furthermore ad.而且,此外 easy a.容易的,不费力的,安逸的,宽裕的 scarcely ad.几乎不,简直没有,勉强 genuine a.真正的,名副其实的 safety n.安全,保险;安全设备,保险装置 trench n.&v.(挖)沟,(挖)战壕 act v.表演;举动;起作用 n.行为,法令;一幕 fatal a.致命的,毁灭性的 impossible a.不可能的;难以忍受的,很难对付的 hover vi.(鸟)盘旋,翱翔,(人)逗留在附近徘徊 scissors n.剪子 pressure n.压,压力,压迫,强制,紧迫,困苦,困难 opportunity n.机会 plain a.明白的;朴素的;坦率;平凡 n.平原,旷野 lest conj.惟恐,免得 percent n.(per cent)百分之...的 tone n.音调,音色;风气,气氛;腔调,语气;色调 romantic a.浪漫的,传奇式的;不切实际的,好幻想的 catastrophe n.大灾难;(悲剧)结局 litter n.垃圾,(杂乱的)废物 v.使杂乱,乱丢 river n.河流 five num.五 pron./a.五(个,只...) ability n.能力;本领;才能,才干;专门技能,天资 milk n.牛奶;(植物流出的)白色乳液 v.挤奶 congratulation n.(on)祝贺,(pl.)祝贺词 evolve v.(使)发展;(使)进化;(使)进展 dubious a.怀疑的,无把握的;有问题的,靠不住的 accord vt.给予(欢迎、称颂等) vi.&n.符合,一致 china n.瓷器 dangerous a.危险的,不安全的 reservation n.保留,保留意见;预定,预订 princess n.公主,王妃 chance n.机会;可能性;偶然性,运气v.碰巧,偶然发生 thumb n.拇指 v.示意要求搭车;迅速翻阅 skyscraper n.摩天大楼 ward n.病房;行政区;监护;被监护人 vt.挡住 earth n.地球;陆地;泥土,土壤;尘世,人间 aluminum n.(aluminium)铝 ink n.墨水,油墨 remove v.移动,脱掉,调动,免职 basic a.基本的,基础的 sour a.酸的;发酸的;酸痛的;脾气坏的;刻薄的 diet n.饮食,食物 hospitality n.好客,殷勤,款待 extraordinary a.非常的;格外的;意外的;离奇的;临时的 foot n.(pl.feet)脚,足;英尺;底部 spokesman n.发言人 stool n.凳子;(pl.)大便 weed n.杂草,野草 v.除草,锄草 acclaim v.向…欢呼,公认 n.欢呼,喝彩,称赞 crush n./v.压碎,压坏 v.压服,压垮 big a.大的;重要的;宽宏大量的;大受欢迎的 straight a.直的;整齐的,端正的 ad.直接;正直,直率 invert v.倒置,倒转,颠倒 rigorous a.严格的,严厉的,严酷的,严密的,严谨的 aural a.听觉的,听力的 location n.位置,场所,定位,测位 semester n.学期 harsh a.粗糙的;(声音)刺耳的;苛刻的,严酷的 patron n.赞助人;资助人;老顾客,老主顾 jungle n.丛林,生死地带 trademark n.商标;特征 vt.注册的…商标 thus ad.如此;像这样;于是;因此 peep v.偷看,窥视 challenge n.挑战(书);艰巨任务,难题 v.向…挑战 inhale v.吸入(气体等),吸(烟) supper n.晚餐 law n.法律,法规,法学,规律,定律 obstacle n.障碍(物),妨碍,阻碍,干扰 thanksgiving n.感恩节 violin n.小提琴 authority n.权力,权威;权威人士;(pl.)官方,当局 pine n.松树 tissue n.织物,薄绢,纸巾;(动,植物的)组织 difficulty n.困难,困境,难题 pistol n.手枪 meditate v.想,考虑,(尤指宗教上的)沉思,冥想 ambassador n.大使;特使,(派驻国际组织的)代表 transplant n./v.移植(植物;组织,器官等);迁移; detective n.侦探 introduction n.(to)介绍;传入,引进;导言,导论,绪论 weight n.重量;负荷,重担;重要性,分量;砝码,秤砣 faulty a.有错误的,有缺点的,不完善的 masculine a.男性的,似男性的;[语法]阳性的 loom n.织布机,织机 v.隐现,(危险、忧虑等)迫近 perfume n.香味,芳香;香料 v.使发香,洒香水于 kitchen n.厨房 dumb a.哑的,无言的 despatch n./v.(dispatch)派遣;发送 n.急件;新闻报道 auditorium n.观众席,听众席;会堂,礼堂 grieve v.使悲伤,使伤心 goodness n.善良,仁慈;(食物等)精华 int.天哪 collection n.收藏(品),收集(物) seven num.七,七个(人或物) hundred num.百,一百;[pl.]许多 a.一百的;许多 fly n.飞行;苍蝇 v飞行;飘杨 a.机敏的 drama n.剧本,戏剧;戏剧性事件或场面 eight num.八 pron.八(个,只...) january n.一月 focus n.焦点,(活动,兴趣等的)中心 v.(on)使聚集 scatter v.散开,驱散;散布,散播 accountant n.会计人员,会计师 torment n.折磨;令人痛苦的东西(人)vt.折磨;纠缠 launch v.发射;使(船)下水,发动,开展 n.发射,下水 treason n.谋反,通敌,叛国 viewpoint n.观点 feature n.特征;容貌;特色;特写 v.以...为特色 photo n.(photograph)照片 parameter n.参数,参量 pale a.苍白的,灰白的;浅的,暗淡的 couch n.长沙发;(病人躺的)长榻vt.表达 claw n.爪,脚爪 gift n.礼品,赠品;天赋,才能 legend n.传说,传奇 partner n.合作者,合伙人,合股人,伙伴,舞伴,配偶 pie n.馅饼 ashamed a.惭愧的,羞耻的,害臊的 shift v.替换,转移n.转换,转变;(轮)班,(换)班 downtown ad.在城市的商业区 n./a.城市商业区(的) funeral n.丧葬,葬礼 glance v.(at,over)扫视 n.匆匆看,一瞥,一眼 credit v./n.信用,信任 n.信用贷款,赊欠;名誉,名望 aboard ad.&prep.在船(飞机、车)上;ad.上船(飞机) structure n.结构,构造;建筑物 v.构造,建造 gas n.气体;煤气;汽油;毒气vt.毒(死);加油 famine n.饥荒,饥馑 expression n.表达;表情;声调;腔调;榨出;措词;式;符号 leap v.跳,跳跃 n.跳跃,飞跃 abandon vt.离弃,丢弃;遗弃,抛弃;放弃 excuse v.原谅,宽恕,免除 n.借口,辩解 superfluous a.多余的,过剩的, marital a.婚姻的,夫妻之间的 suicide n.自杀;给自己带来恶劣后果的行为 coach n.长途公共汽车;教练 vt.训练,指导,培训 jealous a.(of)妒忌的;猜疑的,警惕的 affect vt.影响;(疾病)侵袭;感动 n.情感,感情 tale n.故事,传说 survive v.幸免于,幸存;比…长命 democracy n.民主,民主制,民主国家 owl n.猫头鹰 fry v.油煎,油炸 junction n.连接,接合,交叉点,枢纽站,接头,中继线 invent v.发明,创造;捏造,虚构 however ad.然而,可是,不过,无论如何 conj.无论 timber n.木材,木料 adopt vt.采用,采取(态度等);选定;收养 touch v.触,碰,摸;感动;涉及 n.触动,碰到;少许 deny v.否认,否定;拒绝 fist n.拳头 vt.用拳头打;紧握 pound n.磅;英镑 v.(连续)猛击,(猛烈)敲打,捣碎 delete vt.删除 hostile a.敌对的,敌方的,敌意的 recipe n.烹饪法,食谱;诀窍,方法 communication n.通讯,传达;(pl.)通讯系统;交通(工具) island n.岛,岛屿;(道路上的)交通安全岛 fellowship n.伙伴关系;联谊会,团体 much a.多的,大量的 ad.十分,非常;到极大程度 gain v.获得;增加;表等走快 n.增进,增加;收益 angel n.天使,安琪儿 erupt v.(尤指火山)爆发 mountain n.山 umbrella n.伞 memo n.(memorandum)备忘录 fog n.雾气,雾 v.以雾笼罩,被雾笼罩 cognitive a.认知的,认识能力的 ice-cream n.冰淇淋 interrupt v.中断,遮断,阻碍;打断(话),打扰 epidemic a.流行性的;传染的 n.流行病;传播 way n.道路,路程;方法/式,手段;习惯;状态 depart vi.离开,起程 a.过去的,逝世的 campus n.(大学)校园 pierce v.剌穿,刺破 marriage n.结婚,婚姻;结婚仪式 admit vt.承认,供认;准许…进入,准许...加入 grope n./v.摸索,探索 collar n.衣领;环状物 tape n.带(子);录音带,磁带 v.录音;系,捆 multiply v.(by)乘,使相乘;倍增,增加,繁殖 humidity n.湿气,湿度 contain v.包含,容纳;容忍,抑制;可被...除尽 surroundings n.周围的事物,环境 humanity n.人类,人性,人情;(pl.)人文科学 inherent a.固有的,内在的,天生的 ponder v.沉思,考虑 escort vt.护送(卫);陪同 n.警卫,护送者;仪仗兵 international a.国际的,世界(性)的,跨国的 razor n.剃刀 wound n.创伤,伤口 v.伤,伤害 clockwise a.顺时针方向 germ n.微生物,细菌 magnet n.磁体,磁铁 refund n.归还,偿还额,退款 v.退还,偿还,偿付 hypocrisy n.伪善,虚伪 hunger n./v.饥饿;渴望 expend v.消费,花费 luck n.运气;好运,侥幸 who pron.谁,什么人;…的人;他,她,他们 pleasure n.愉快,快乐;乐事,乐趣 airline n.(飞机)航线 a.(飞机)航线的 catalog n.(catalogue)目录(册) v.编目(录) revenge n.报复,复仇 v.替…报仇 girl n.少女,姑娘,女孩;女职员 inclusive a.(of)包括的,包含的;范围广的 unify v.使联合,统一;使相同,使一致 although conj.尽管,虽然...但是 pattern n.模式,式样;图案,图样 v.仿制,模仿 vote n.投票,表决;选票,选票数 v.投票,表决 theory n.理论,原理;学说,见解,看法 blunt a.率直的;钝的 v.(使)钝;(使)迟钝 suite n.套间;一套家具;套,组,系列 recognition n.认出,辨认;承认 can aux.v.能;可以 n.罐头;容器 vt.把…装罐 ship n.船舶,舰艇 v.装运,航运,运送;发货 destroy v.破坏,摧毁,消灭 kind a.仁慈的,友好的,亲切的,和蔼的 n.种类 scientist n.科学家 saving n.挽救,救助,节约,储蓄;(pl.)储蓄金,存款 satellite n.卫星,人造卫星;附属物 sure a.肯定的;一定会…的;有信心的,有把握的 interact v.互相作用,互相影响 deem v.认为,相信 wife n.妻子,夫人,太太 interface n.接合部位,分界面 v.(使)互相联系 strawberry n.草莓 dash v./n.冲,猛冲,突进 n.破折号 hour n.小时,钟点;时刻;课时,工作时间 treasure n.财宝,财富;珍品 v.珍爱,珍惜 warrant n.正当理由;许可证,委任状 v.保证,担保 fax n./v.传真(机) vase n.花瓶,瓶 permeate v.弥漫,遍布,散布;渗入,渗透 therapy n.治疗,(不需要药物或手术的)物理疗法 apologise v.(to,for)道歉,认错 brush n.刷(子),毛刷;画笔 v.刷,擦,掸,拂;掠过 whisky n.威士忌酒 institute n.学会,研究所;学院 v.设立,设置,制定 expire v.期满,(期限)终止;呼气;断气,死亡 roundabout a.迂回的,转弯抹角的 n.环状交叉路口 delicate a.纤弱的;精致的;微妙的;灵敏的 ant n.蚁;蚂蚁 terminate vi.(使)结束,(使)停止 rally v.重整,恢复,振作 n.聚集,集会,拉力赛 ego n.自我,自负,利已主义;(心理学)自我意识 lung n.肺 pass v.经/通/穿/度过;传递 n.通行证;考试及格 exclude v.拒绝,把…排除在外,排斥 bomb n.炸弹 v.投弹于,轰炸 pregnant a.怀孕的,孕育的,充满的,意味深长的 plus prep.加上 a.正的,加的 n.加号,正号 everywhere ad.到处,各处,无论何处 terrify v.使害怕,使惊恐 brook n.小溪vt.[常用于否定句或疑问句]容忍 philosophy n.哲学,哲理,人生观,价值观,世界观 module n.组件,模块,模件;(航天器的)舱 they 商店。(一般人经常用复数they来指一家商店) traitor n.叛徒,卖国贼 neat a.整洁的,干净的,优美的,精致的 spark n.火花,火星 v.发火花,发电花 when ad./pron.何时;当时 conj.那时;然后;而 preclude v.排除,阻止,妨碍 oriental a.东方的,东方诸国的 n.东方人 competent a.有能力的,能胜任的;足够的 rational a.理性的,合理的 dear a.昂贵的;亲爱的;珍贵的 int.呵!哎呀! boss n.老板,上司 vt.指挥,控制,发号施令 paperback n.平装本,简装本 chin n.下巴,颏 gasoline n.(gasolene)汽油 incident n.事件,事变 space n.间隔;空地,余地;空间 v.留间隔,隔开 intend vt.想要,打算,企图 seize v.抓住,逮住;夺取,占领;没收,查封 special a.特殊的,专门的;附加的,额外的 comb n.梳子 v.梳(理) mist n.薄雾,霭 capture v./n.捕获,俘虏;夺得,攻占 decrease n.减少,减小;减少量 v.减少,变少,降低 mixture n.混合;混合物,混合剂 june n.六月 yield v.出产,生长;(to)屈服,服从 n.产量,收获 loan n.贷款;出借,借出 v.借出 preferable a.(to)更可取的,更好的 yawn v.打呵欠 n.呵欠 formal a.正式的;形式的 cyberspace n.虚拟信息空间;网络空间 ambitious a.有抱负的,雄心勃勃的;有野心的 heading n.标题 function n.功能,作用;(pl.)职务;函数 v.起作用 perceive v.察觉,感知;理解,领悟 question n.问题;询问 v.询问;怀疑,对…表示疑问 format n.(出版物的)开本,版式,格式 vt.设计;安排 back a.后面的 ad.向后 v.倒退;支持 n.背;后面 charge v.索(价);控告;充电 n.(pl.)费用,代价;电荷 outset n.开始,开端 devise vt.设计;发明;图谋;作出(计划);想出(办法) lovely a.可爱的,好看的;令人愉快的,美好的 suffer v.(from)受痛苦,患病;受损失;遭受;忍受 footstep n.脚步(声),足迹 render v.使得,致使;提出,提供,呈报 vary vt.改变,变化;使多样化 end n.末端,端,梢;目标,目的 v.终止,结束 i pron.(主格)我 odor n.(odour)气味,香味,臭味,名声 gentle a.和蔼的,文雅的,有礼貌的 snack n.快餐,小吃,点心 shot n.开枪,射击;投篮;弹丸,炮弹,子弹 lavatory n.厕所,盥洗室 undergo vt.遭受,经历,承受 captain n.首领,队长;船长;上尉 v.做…的首领,指挥 hysterical a.情绪异常激动的,歇斯底里的 under prep.在…下面; 在…以下 ad.在下面;少于 cheese n.干酪,乳酪 bake v.烤,烘,焙;烧硬,焙干 fortnight n.两星期 likewise ad.同样地,照样地;又,也,而且 trap n.陷阱,圈套 vt.诱捕;使中圈套 vi.设圈套 eighty num./a.八十 pron.八十(个,只...) annual a.每年的,一年生的 n.年刊;一年生植物 endurance n.忍耐(力),持久(力),耐久(性) careful a.小心的,仔细的;细致的,精心的 rich a.富的,有钱的;富饶的;(in)充足的,丰富的 style n.风格,文体;式样,时式,类型 agent n.代理人;代理商;产生作用的人或事物 her pron.[she的宾格]她;[she的所有格]她的 energetic a.精力旺盛的;积极的;有力的 track n.跑道,小路;轨迹,轮迹 v.跟踪,追踪 monument n.纪念碑,纪念馆,遗迹,不朽的业绩 she pron.(主格)她 friendship n.友谊,友好 siege n.包围,围攻,围困 cellar n.地窑,地下室 trend n.倾向,趋势 vi.伸向,倾向 grow v.生长,成长;渐渐变成;栽培,种植;发展 foreign a.外国的,(to)无关的;外来的;异质的 carbon n.碳 explosion n.爆炸,爆发 shortage n.不足,缺少 ice-cream n.冰淇淋 ownership n.所有(权),所有制 transition n.转变,变迁,过渡(时期) fever n.发热,狂热 depress v.压抑,降低;使沮丧,压下 cash n.现金,现款 v.兑现,付(或收)现款 summer n.夏天,夏季 a.夏季的 funny a.滑稽的,可笑的 lesson n.(功)课;[pl.]课程;教训 efficient a.有效的,效率高的;有能力的,能胜任的 receipt n.收据,收条;收到,接到 hobby n.业余爱好,嗜好,兴趣 habit n.习惯,习性,脾性 fantasy n.幻想,空想;空想的产物,幻想作品 own a.(用在所有格后面,加强语气)自己的 astronaut n.太空人,太空旅行者 exclaim v.呼喊,惊叫,大声说 cereal n.加工而成的谷类食物;谷类植物,谷物 metaphor n.隐喻,暗喻 above a.上述的 ad.在上面 prep.在..之上,高于 cliff n.悬崖;峭壁 mute a.哑的,缄默的n.哑巴;弱音器v.减弱…的声音 partly ad.部分地,不完全地,在一定程度上 outskirts n.郊区 basketball n.篮球,篮球运动 garbage n.垃圾 compile vt.编辑,编制,搜集 staircase n.(stairway)楼梯 smooth a.光滑的;顺利的;柔和的 v.(over)掩饰 proclaim v.宣告,声明 indeed ad.确实,实在;真正地,多么 prey n.被掠食者,牺牲者,掠食 v.捕食,掠夺,折磨 manuscript n.手稿,原稿 disturb v.扰乱,妨碍,使不安 ferry n.摆渡;渡船;渡口v.摆渡;渡运(人,车或物等) fetch v.取来;接来;引出;售得;吸引 n.取得;拿 contemplate vt.盘算,计议;周密考虑;注视,凝视 alert a.机警的,警觉的;机灵的 vt.使…警觉 badminton n.羽毛球 gigantic a.巨大的,庞大的 bin n.(贮藏食物等用的)箱子 discovery n.发现;被发现的事物 appendix n.附录,附属物;阑尾,盲肠 seam n.缝,接缝 or conj.或,或者(表示选择);即,大约;否则 boy n.男孩子,儿子;男性服务员 document n.公文,文献 audit v.审计;查帐;核对;旁听 friend n.朋友 musical a.音乐的;有音乐才能的 n.音乐片 married a.已婚的,夫妇的;(to)与…结婚的 oar n.桨,橹 v.划,划动,划行 win vi.获胜,赢 vt.赢得;在…中获胜 n.胜利 gentleman n.绅士,先生 allowance n.补贴,津贴;零用钱;减价,折扣;允许 excerpt n./vt.摘录;引用 negotiate v.商订;谈判,洽谈,交涉 neglect v./n.忽视;疏忽,漏做,忽略 dental a.牙齿的;牙科(用)的 attendant n.陪从;出席人;服务员 a.出席的;伴随的 surprise v.使诧异,使惊异;奇袭 n.诧异,惊异;奇袭 potato n.马铃薯,土豆 hatch v.孵,孵出;策划,图谋 n.舱口,小门 domain n.(活动,思想等)领域,范围;领地 enable v.使能够,使成为可能;授予权利或方法 regulate v.管制,控制;调节,校准;调整 personal a.个人的,私人的;亲自的;身体的,人身的 spicy a.加很多香料的;(口味)浓郁的 kill vt.杀死,消灭;破坏,毁灭;消磨(时间) front a.前面的,前部的 n.正面;前线,战线 v.面对 electronic a.电子的 radio n.收音机;无线电报,无线电话v.无线电通讯 adhere vi.(to)粘着;坚持,遵守;依附,追随 yesterday n.&ad.昨天;前不久 e-mail n.(electronic mail)电子信函,电子邮件 innumerable a.无数的,数不清的 everyone pron.(everybody)每人,人人,各人 isolate vt.隔离,孤立 occupy v.占,占用;占据,占领;使忙碌,使从事 stain n.污点,瑕疵 v.沾污;染色 headline n.大字标题,新闻标题 crow n.乌鸦 v./n.鸡啼,鸣叫 fate n.命运 plate n.金属板,片;盘子,盆子;板,钢板v.镀,电镀 collapse v./n.倒塌;崩溃;(价格)暴跌;倒闭,破产 heal v.治愈,愈合 as ad.同样地 conj.由于;像...一样 prep.作为 appraisal n.对...作出的评价;评价,鉴定,评估 substantial a.实质的;相当的;显著的;坚固的;富裕的 satisfactory a.令人满意的,圆满的,良好的,符合要求的 phone n.(telephone)电话,电话机,耳机 v.打电话 recipient a.接受的,感受性强的 n.接受者,感受者,容器 incline v.(使)倾斜;(使)倾向于 n.斜坡,斜面 pneumonia n.肺炎 belief n.信任,相信,信念;信仰,信条 erase v.擦掉;删去;消磁 mount v.登上;安装n.支架,底板;(用于山名前)山峰 rice n.稻,米 sufficient a.(for)足够的,充分的(比enough拘谨、正式) interpret vt.解释,说明;口译 earnest a.热心的,诚挚的 n.热心;真挚;定金;认真 respective a.各自的,各个的 discrepancy n.相差;差异;矛盾; grade n.等级,级别;年级;分数 v.分等,分级 duration n.持久;期间;持续时间 happen v.(偶然)发生;碰巧,恰好 tanker n.油船 recover v.收回;(from)恢复,痊愈;重新获得 aid n.援助,救护;助手,辅助物 vi.援助,救援 weather n.天气,气象 cassette n.盒子;盒式磁带 torch n.手电筒;火炬,火把 time n.时间,时刻;次,回;时代,时期;倍,乘 physician n.内科医生 how ad..(表示方法、手段、状态)怎样;如何 dwelling n.住宅,寓所 qualification n.资格,合格;限定,条件;合格证 spell v.拼写 splash v.溅,泼 n.溅,飞溅声 exit n.出口,通道 foremost a.最先的;最初的; 主要的 ad.首要地 forthcoming a.即将到来的;准备好的;乐意帮助的;n.来临 transistor n.晶体管;晶体管收音机 frighten v.使惊恐 puzzle n.难题,谜,迷惑 v.(使)迷惑,(使)为难 elect v.选举,推选;选择,作出选择 seminar n.(大学的)研究班,研讨会 death n.死,死亡;灭亡,毁灭,死因 wall n.墙,壁,围墙vt.筑墙围住,用墙隔开 sniff vi.嗅…味道;抽鼻涕;对嗤之以鼻,蔑视 late a.迟的,晚的,晚期的;已故的 ad.迟,晚 bar n.条,杆,闩;酒吧;栅,障碍(物) v.闩上,阻拦 rust n.铁锈 v.(使)生锈 optical a.眼的,视力的;光学的 baseball n.棒球 shrewd a.机灵的,敏锐的;精明的 desolate a.荒凉的;孤独的 v.使荒芜 debt n.债,债务 menace vt./n.有危险性的人(或物);威胁,威吓 exploit v.开拓;开发;剥削 n.功绩[勋];业绩 fold v.折叠;合拢;抱住 n.褶,褶痕;羊栏;信徒 cinema n.电影院;电影,影片 cease v./n.停止,中止 race n.赛跑;人种,种族;属,种 v.赛跑 legal a.法律的,法定的;合法的,正当的 memory n.记忆,记忆力;回忆;存储(器) spot n.斑点;地点 v.认出,认清,发现;玷污,弄脏 ally n.同盟者,同盟国,vt.使结盟;与…有关联 gratitude n.感激,感谢 real a.真的,真实的;实际的,现实的 spit v.吐(唾沫),吐痰 n.唾液 hundred num.百,一百;[pl.]许多 a.一百的;许多 thrive v.兴旺,繁荣 critical a.批评的,评论的;危急,紧要的;临界的 acquaint vt.(with)使认识,使了解,使熟悉 high a.高的,高度的,高级的,高尚的 ad.高高地 technology n.科学技术;工业技术;应用科学 terror n.恐怖;可怕的人(事) awake a.醒着的 vt.唤醒,使觉醒 vi.醒来,醒悟到 verse n.韵文,诗;诗节,诗句 exceed v.超过,胜过;越出 force n.力量,力;势力;(pl.)(总称)军队 v.强迫 vegetation n.植物,草木 compass n.罗盘,指南针;(pl.)圆规 forward ad.(also forwards)向前 a.向前的 v.转交 assure vt.使确信,使放心(of);向…保证 soon ad.不久,即刻;快,早 formal a.正式的;形式的 tremble n.战栗,颤抖 v.发抖,颤抖;摇动;焦虑 himself pron.[反身代词]他自己;他本人 nation n.民族,国家 appoint vt.任命,委派;指定,约定(时间、地点等) whip n.鞭子;车夫 v.鞭打,抽打;突然移动 grocer n.食品商,杂货商 limitation n.限制,局限性 integrity n.正直,诚实;完整,完全 assault v.猛烈地攻击,袭击 n.突然而猛烈的攻击 neither a.两者都不 pron.两者都不 ad.也不 obey v.服从, 顺从 individual a.个人的,单独的;独特的 n.个人,个体 seal n.封铅,封条;印,图章;海豹 v.封,密封 since prep.自从 conj.自从;因为,既然 ad.后来 sample n.样品,实例,标本,抽样检查 v.取样,采样 tease v.戏弄,取笑;挑逗 n.(爱)戏弄他人者;戏弄 carriage n.(四轮)马车;(火车)客车厢 replace vt.取代,替换,代替,把...放回原处 ball n.球(状物);(正式的)舞会vt.把…捏成球状 record n.记录;最高记录;履历;唱片v.记录;录音 purse n.钱包 reed n.芦苇,苇丛;芦笛,牧笛 revive v.恢复;(使)复苏 trade n.贸易,商业;职业,行业 v.经商,交易 trait n.特征,特点,特性 guideline n.指导方针,指导原则,准则,标准 decay v./n.腐朽,腐烂;衰减,衰退 ventilate vt.使通风;给…装通风设备 coal n.煤,煤块 constitute vt.组成,构成,形成;设立,建立,任命 rib n.肋骨,肋状物 priest n.教士,神父 flesh n.肉,肌肉 scramble vi.(快速地)爬,攀登;互相争夺,争先 straightforward a.正直的;简单的,易懂的 ad.坦率地 holy a.神圣的,圣洁的 exhibition n.展览会;陈列,展览 utmost a.最远的;极度的 n.极限,极度,最大可能 thereafter ad.此后,以后 upward a.向上的,上升的 ad.向上 fulfill v.(fulfil)完成,履行,实践,满足 familiar a.熟悉的;通晓的;亲近的 n.熟客;密友 latent a.潜在的,潜伏的,不易察觉的 warmth n.暖和,温暖;热心,热情 but conj.但是 prep.除...以外 ad.只,才,仅仅 moon n.(加the)月球,月亮;卫星 ourselves pron.[反身代词]我们自己;我们亲自 surgeon n.外科医生 breath n.呼吸,气息 beneficial a.(to)有利的,有益的 quota n.(生产、进出口等的)配额,(移民的)限额 sensation n.感觉,知觉;激动,轰动,轰动一时的事情 adverb n.副词 a.副词的 guide n.领路人;指南,导游 v.领路;指导;支配;管理 transient a.短暂的,转瞬即逝的;临时的,暂住的 represent v.描述,表示;代表,代理;阐明,说明 teach vt.教,讲授;教导(训)vi.讲课,当教师 devote v.(to)奉献,致力 all a.全部的;非常的 ad.完全地,很 pron.全部 zeal n.热心,热忱,热情 fire n.火;火灾,失火;炉火 vi.开火 vt.放(枪) federation n.同盟;联邦;联合;联盟;联合会 diminish v.缩小,减少,递减 belt n.(皮)带,腰带;地带 bank n.银行;岸,堤;vi.存入(经营)银行;信赖 grim a.严酷的,令人害怕的;不愉快的,讨厌的 appeal vi.呼吁,恳求;申诉 n.呼吁;申诉;吸引力 denial n.否认;拒绝;否认某事或某事实的声明 beginning n.开始,开端;起源,早期阶段 mad a.发疯的;狂热的,着迷的;恼火的,生气的 bleed v.出血,流血 gasp n.喘息,气喘 v.喘息;气吁吁地说 object n.物体;客体,对象;目标;宾语 v.(to)反对 nucleus n.(pl.nuclei)核,核心,原子核 partial a.部分的,不完全的;偏袒的,不公平的,偏爱的 upset v.使…心烦意乱;打翻,推翻a.难过的;不安的 certainty n.必然,肯定;必然的事 cheer v.(使)振奋,(使)高兴 v./n.喝彩,欢呼 community n.同一地区的全体居民,社会,社区;共同体 drip v.滴下,漏水 n.滴,水滴,点滴 profile n.侧面(像);轮廓,外形;人物简介 central a.中心的,中央的,中枢的;主要的 millimeter n.(millimetre)毫米 artist n.艺术家,美术家;(某方面的)能手 divine a.神的,神授的,天赐的;极好的,极美的 medieval a.中世纪的,中古(时代)的,老式的,原始的 motion n.运动,动;提议,动议 v.提议,动议 employment n.雇用;使用;工作,职业 nervous a.神经的;神经过敏的,紧张不安的 policeman n.警察 connection n.(connexion)联系,连接;亲戚,社会关系 less a./ad.更少的(地),更小的(地) on a.连接上 prep.在…上;靠近 ad.向前,继续 eastern a.东方的,东部的 moan n.呻吟声,悲叹声 v.呻吟,抱怨,悲叹 settlement n.解决,决定,调停;居留区,住宅区 penny n.便士,美分 engagement n.约会,约定;婚约,订婚 conquer v.征服,战胜,占领;克服,破除(坏习惯等) gate n.大门;入口;观众人数,门票收入 tramp n./v步行;沉重的脚步声(走)v.践踏n.流浪者 embody vt.具体表达,使具体化;包含,收录 inward ad.向内,在内 a.向内的,在内的,里面的 rate n.速率;等级;价格,费用 v.估价;评级,评价 folk n.人们;民族;亲属 a.民间的 tip n.尖端;末端;小费 n./v.轻击;倾斜;给小费 dizzy a.头晕目眩的,眩晕的;(可能)使人头晕的 tray n.盘,碟,托盘 income n.收入,收益,所得 spacecraft n.宇宙飞船 liberal a.慷慨的,大方的;富足的;自由的,思想开放的 feasible a.可行的;切实可行的;行得通的;可用的 exceedingly ad.极端地,非常 party n.聚会,政党,当事人 v.举行(参加)社交聚会 intuition n.直觉,直观;凭直觉而知的事物 fruit n.水果,果实;成果,效果 existence n.存在,实在;生存,生活(方式) robust a.强健的,雄壮的,精力充沛的,坚固的,浓的 soap n.肥皂 amount n.总数,数量;数额 v.共计;等同,接近(to) finite a.有限的;[数]有穷的,限定的 applaud vt.鼓掌欢迎;赞同 vi.鼓掌欢迎,欢呼 youngster n.小伙子,年轻人;少年,儿童 anecdote n.轶事,趣闻,短故事 reproach v./n.责备,指责 pillow n.枕头 tire v.(使)疲倦,(使)厌倦 n.(=tyre)轮胎,车胎 stomach n.胃,胃口;肚子,腹部vt.承受,忍受 engineer n.工程师 october n.十月 conscious a.(of)意识到的,自觉的;神志清醒的 inside a.里面的 ad.在里面 n.内部 prep.在…里 boat n.小船,艇 compartment n.卧车包房,(客车车厢内的)隔间;分隔的空间 may aux.v.可能,也许;可以,被允许;祝,愿 fracture n.裂缝(痕);骨折 v.(使)断裂,(使)折断 governor n.统治者,管理者,总督,州(省)长 undergraduate n.大学生,大学肆业生 realistic a.现实(主义)的 priority n.先,前;优先,重点,优先权 exam n.(examination)考试,测验 rein n.缰绳,统治,支配 v.驾驭,控制,统治 vast a.巨大的,辽阔的,大量的;巨额的 cardinal n.(天主教的)红衣主教 a.首要的,基本的 damn int.该死 vt.遣责;使失败 a.十足的 ad.极 triangle n.三角(形) kidnap vt.诱拐;绑架,劫持 huge a.巨大的,庞大的 centigrade n./a.摄氏温度计(的);百分度(的) shove vt.乱推;乱塞vi.用力推,挤n.猛推 orange n.柑,桔,橙 liberate vt.解放,释放 side n.旁边,侧面;坡,岸;一边/侧/方 vi.支持 quit v.离开,退出;停止,放弃,辞职 eclipse n.日食,月食 poem n.诗 stranger n.陌生人,生客;外地人,外国人 shine v.照耀,发光;擦亮 n.光泽,光 diary n.日记,日记簿 during prep.在…期间 crop n.作物,庄稼;(谷类等的)一熟收成;一批,大量 spread v./n.伸开,伸展;散布,传播 hungry a.饥饿的,渴望的 sponsor n.发起人,主力者,保证人 v.发起,主办 dissolve v.(使)溶解,(使)融化;解散,取消 extra a.额外的,附加的 n.附加物,额外的东西 point n.尖;点;条款;分数,得分;论点 v.(at,to)指 artificial a.人工的,人造的,人为的;虚伪的,做作的 howl n.怒吼,嗥叫 vi.(风等)怒吼,咆哮 hole n.洞,孔 map n.地图,图 vt.在地图上标示出,绘制地图 cheek n.面颊,脸 star n.星;恒星;明星 v.用星号标出;扮演主角 knee n.膝,膝盖 nourish v.提供养分,养育,怀有(希望,仇恨等) fruit n.水果,果实;成果,效果 see vt.看见;会面;探望;知道,获悉;送行 juvenile n.青少年,少年读物 a.青少年的, 幼稚的 hotel n.旅馆 feedback n.反馈;反应;回授 thirst n.渴,口渴;(for)渴望,热望 wrinkle n.皱纹 v.起皱,皱眉 tentative a.试探性的,暂时的;犹豫不决的 intensive a.加强的,集中的,深入细致的,精耕细作的 indicative a.(of)指示的,暗示的 against prep.对着,逆;反对;违反;紧靠着;对比 deputy n.代理人,代表 a.副的,代理的 cat n.猫;猫科; towel n.毛巾 vt.用毛巾擦或擦干 secondary a.次要的,二级的;中级的,第二的 so-called a.(贬)所谓的,号称的 occasional a.偶然的,非经常的,特殊场合的;临时的 oval a.卵形的,椭圆形的 n.卵形,椭圆形 petition n.请愿书,申请书 v.(向…)请愿,正式请求 welfare n.福利;幸福;福利事业 amplifier n.放大器,扩大器 picnic n.野餐 v.(去)野餐 abundance n.丰富,充裕,大量 pebble n.卵石 postman n.邮递员 enroll v.(enrol)招收;登记;入学;参军;成为会员 frank a.坦白的,直率的 emotion n.情绪,情感,感情 fill v.(with)填满,充满 honest a.诚实的,正直的,老实的 onto prep.在...上面;到...上面 track n.跑道,小路;轨迹,轮迹 v.跟踪,追踪 telegraph n.电报机,电报 v.打电报,发电报 say vt.说,讲;说明;比如说 vi.说,发表意见 sob v./n.哭泣,呜咽 best a.最好的(good和well最高级) ad.最好地;最 junior a./n.年少的/者,三年级的/学生,下级(的) indignation n.愤怒,愤慨 odds n.不平等,差异;机会 enjoy vt.享受…的乐趣;欣赏;喜爱 prevalent a.流行的,普遍的 ocean n.海洋 weird a.古怪的,离奇的;怪诞的,神秘而可怕的 million num./n.百万,百万个 joy n.欢乐,喜悦;乐事,乐趣 advantage n.优点,长处,有利条件;利益,好处 versatile a.通用的;多才多艺的,多方面的 plead v.恳求,请求;为…辩护;提出…为理由 mercury n.水银,汞 vocabulary n.词汇,词汇量;词汇表 offset n.分支,补偿 v.抵消,补偿 leisure n.空闲,闲暇;悠闲,安逸 housewife n.家庭主妇 each a./pron.各,各自的,每 hide v.隐藏,躲藏;隐瞒 n.皮革,兽皮 marvelous a.(marvellous)惊人的,奇迹般的,妙极的 procession n.队伍,行列 pave v.铺砌,铺(路) chemistry n.化学 destination n.目的地,终点 coke n.焦炭;可口可乐(coca-cola)的缩写 precede v.领先(于),在(…之前);优先,先于 freedom n.自由,自主,免除,特权 slippery a.滑的,滑溜的 historian n.历史学家 christian n.基督教徒 a.基督教徒的 rod n.杆,棒 winter n.冬季,冬天 bottle n.瓶(子) v.装瓶 explore v.勘探,探测;探究,探索 outlook n.景色,风光;观点,见解;展望,前景 motive n.动机,目的 a.发动的,运动的 cock n.公鸡,雄鸡;龙头,开关 formula n.(pl.formulae)公式;规则;分子式;药方 seek v.(after,for)寻找,探索;试图,企图 symbol n.符号,标志;象征 skilled a.(in)熟练的,有技能的;需要技能的 humid a.湿的,湿气重的 depth n.深,深度,深奥,深刻 revolve v.(使)旋转;考虑;【天】公转,循环 deer n.鹿 hemisphere n.半球 widow n.寡妇 humorous a.富于幽默感的,幽默的;滑稽的 technical a.技术(性)的,工艺的;专门性的,专业性的 organ n.器官;机构,机关;风琴 swing v.摇摆,摇荡,回转,旋转 n.秋千;摇摆,摆动 massacre vt.残杀,集体屠杀 n.残杀,大屠杀 coin n.硬币,货币 v.铸造(硬币),创造(新词) jacket n.短上衣,茄克衫 period n.时期,时代;学时;周期,一段时间;句点 advisable a.可取的,适当的,明智的 declaration n.宣言,宣布,声明 obstruction n.妨碍,障碍物 by prep.被;凭借;经由;由于ad.在近旁;经过 alleviate v.减轻,缓和,缓解(痛苦等) argue vi.辩论,争论 vt.辩论,论证;说服,劝说 nickname n.绰号,浑名vt.给…起绰号 criterion n.(pl.criteria或criterions)标准,尺度 ensure v.确保,保证;使安全 envy v./n.羡慕,忌妒 relevant a.有关的,中肯的,相应的,实质性的 heavy a.重的,重型的;沉重的,大量的,猛烈的 lid n.盖 them pron.他们/她们/它们(they的宾格形式) waterfall n.瀑布 fuel n.燃料 vt.给…加燃料 rope n.绳,索 flavor n.(flavour)情味;风味;滋味 v.给…调味 disastrous a.灾难性的 shepherd n.牧民,牧羊人 reap v.收割,收获 mature a.成熟的,熟的;成年人的 v.(使)成熟 doll n.玩偶,玩具娃娃 wedding n.婚礼 pepper n.胡椒粉,胡椒;辣椒 descend v.下来,下降;遗传(指财产,气质,权利) smoke n.烟,烟尘;吸烟,抽烟 v.抽(烟);冒烟,冒气 definition n.定义,解释;(轮廓影像等的)清晰度;阐明; chess n.棋,国际象棋 famous a.著名的 southeast n./a.东南(的),东南部(的) retort n./v.报复,反击,反驳 discourse n.论文;演说;谈话;话语 vi.讲述,著述 accuse vt.控告,指责 vi.指控,指责 i pron.(主格)我 anonymous a.匿名的,无名的,姓氏不明的 quiz n.小型考试,测验,问答比赛 guy n.家伙, 人 letter n.信,函件;字母,文字 resemblance n.相似,相似性[点,物] tiger n.虎;老虎 used a.用旧了的,旧的;习惯于…;过去惯/经常 poor a.贫困的;可怜的;贫乏的;贫瘠的;低劣的 face n.脸,面貌;表情;正面 v.面对着;朝,面向 form n.形状,形式;表格 v.组成,构成;形成 profile n.侧面(像);轮廓,外形;人物简介 physics n.物理(学) integral a.构成整体所必需的;完整的 exercise n.练习,习题;训练,锻练 v.训练,锻练;行使 holder n.持有者,占有者;(台,架等)支持物 canoe n.独木舟,小游艇 folk n.人们;民族;亲属 a.民间的 stubborn a.顽固的,倔强的;难对付的,难以克服的 eighteen num.十八,十八个 syndrome n.综合病征;并存特性 thirty num.三十,三十个(人或物) intimate a.亲密的,密切的 n.熟友,熟人 pollution n.污染 link v.连接,联系 n.环节,链环 stretch v.伸展,延伸 n.拉长;伸展;一段时间/路程 household n.家庭,家人 a.家庭(务)的,家常的 rash a.轻率的,鲁莽的 n.皮疹 enlarge vt.扩大,放大,增大 chase v./n.追逐,追求 crisp a.脆的,易碎的;简明扼要的;(空气)清爽的 local a.地方的,当地的;局部的 textile n.纺织品 a.纺织的 beam n.(横)梁,桁条;(光线的)束,柱 v.微笑 originate v.(in,from)起源,发生;首创,创造 establish v.建立,设立;安置,使定居 lunch n.午餐,(美)便餐 stumble n.跌倒,绊倒 vi.绊(摔)倒;结结巴巴说 proceed v.进行,继续下去;发生 marginal a.记在页边的,旁注的;(意识)边缘的 acquire v.获得;学到(知识等);养成(习惯) day n.天,一昼夜;白昼,白天;时期,时代 curtain n.窗帘,门帘;幕(布);结束; vt遮掩 steady a.稳定的,不变的;坚定的v.(使)稳固/稳定 hostage n.人质 wealth n.财富,财产;大量 care n.小心;关怀,照料 v.(about)关心,介意,计较 porcelain n.瓷器 a.精制的,瓷器的 handicap v.妨碍 n.(身体或智力方面的)缺陷;不利条件 casual a.偶然的,碰巧的;临时的,非正式的 faith n.信任,信用;信仰,信条 move v.移动,迁移;活动;感动 n.移动,活动,行动 excellent a.卓越的,极好的 bald a.秃的,秃头的 liquid n.液体 a.液体的,液态的 procedure n.程序,手续,步骤 excite v.刺激,使激动;激发,激励 endeavor v./n.(endeavour)努力,尽力,力图 obligation n.义务,责任 award vt.授予,给予;判定 n.奖,奖金;仲裁 retain v.保持,保留 weave v.编(织) n.编织法,编织式样 sex n.性别,性 north n.北,北方a.北方的,北部 ad.向北方,在北方 breakdown n.崩溃;衰竭;(关系、计划或讨论等的)中断 sleep v.(slept,slept)睡 n.睡眠 succeed vi.成功;继承,接替 vt.接替;继…之后 means n.方法,手段 slaughter n.屠杀,屠宰 vt.屠杀,宰杀 begin v.(began,begun)开始,着手 graceful a.优美的,文雅的,大方的 today ad.在今天;现今,在当代 n.今天;现在 being n.生物,生命,存在; base n.基础,底部;根据地 v.(on)把…基于 assassinate vt.暗杀,行刺;中伤 pint n.品脱 finance n.财政,金融 v.为…提供资金 slim a.苗条的;(机会)少的 v.减轻体重,变苗条 please v.请;使愉快,使满意;喜欢,愿意 shortly ad.立刻,不久;不耐烦地,简慢地 dine v.吃饭,进餐 pedestrian n.步行者 a.徒步的,呆板的,通俗的 pest n.害虫 nerve n.神经;勇敢,胆量 amateur a.&n.业余(水平)的(运动员、艺术家等) suggest v.建议,提出;使联想,使想起…;暗示 production n.生产,产品,作品,(研究)成果,总产量 dynasty n.王朝,朝代 civilian n.平民 a.平民的;民用的 bump v.(against,into)碰;颠簸着前进 n.碰撞 smuggle v.走私;偷运 sweat n.汗 v.(使)出汗 jet n.喷气发动机,喷气式飞机;喷口 v.喷出,喷射 trend n.倾向,趋势 vi.伸向,倾向 now ad.现在,如今,目前;当时,于是,然后 offer v.提供,提议,出现 n.出价,提议,意图 inventory n.详细目录,存货,财产清册,总量 journal n.定期刊物,杂志,日报;日志,日记 refreshment n.(pl.)点心,饮料;精力恢复,爽快 wedge n.楔,楔形 vt.楔牢,楔入,挤进 vital a.生死攸关的,重大的;生命的,生机的 debate v./n.争论,辩论 value n.价格;价值;实用性 v.评价,估价;尊重 amaze vt.使惊奇,使惊愕;使困惑 vi.表现出惊奇 guest n.客人,宾客,旅客 long a.长的,长时间的,长期的 ad.长久,长期地 sign n.标记,招牌;征兆,迹象v.签名(于),署名(于) urban a.城市的, 市内的 tidy a.整洁的,整齐的 v.整理,收拾 wipe v./n.擦,揩,抹 tent n.帐篷 perform v.履行,执行;表演,演出;完成(事业) stick n.棍,棒,手杖 v.刺,戳,扎;粘贴 affection n.爱,喜爱;爱慕之情;感情;疾病,不适 embrace v.拥抱;包含;包围;环绕;采用;接受 transaction n.办理,处理;交易,事务;(pl.)会报,学报 weekday n.平常日,工作日 basement n.建筑物的底部,地下室,地窖 diagnose vt.诊断(疾病);判断(问题) attendance n.出席;出席人数;护理,照料 overthrow v./n.推翻,颠覆 various a.各种各样的;不同的 indignant a.愤慨的,愤慨不平的 knit v.编织,编结;接合,粘合 knock v.敲,敲打,碰撞 n.敲,击 foam v./n.泡沫,起泡沫 navigation n.航海,航空;导航,领航 involve v.卷入,陷入,连累;包含,含有,涉及 hope n.希望,期望;希望的人或事 v.希望,期望 roll v.滚动;使摇摆;卷,卷起 n.卷,卷形物;名单 one num.一 pron.一个(只)(表示代替可数的东西) lobby n.门廊,门厅,(会议)休息厅 naive a.天真的 think v.想,思索;认为,以为;想要;料想,预料 private a.私人的,个人的,秘密的,私下的 sometimes ad.不时,有时,间或 resource n.(pl.)资源,财力;办法,智谋;应变之才 step n.步;台阶,梯级;步骤,措施 v.踏,走,举步 distinct a.清楚的,明显的;(from)截然不同的 aside ad.在旁边,到一边 n.旁白;离题的话 heave v.(用力)举,提,拉;扔;拖;呕吐n.举起 chew v.咀嚼;思量 marry v.结婚,嫁,娶 practically ad.几乎,实际上,简直 density n.密集,密度,浓度 programme n.(program)节目,计划,规划,程序 v.编程序 vehicle n.车辆,交通工具;媒介,载体 whether conj.是否,会不会,不管,无论 riot n.暴(骚)乱,蔓延,彩色缤纷 v.骚乱,暴动 forth ad.向前;向外,往外 abdomen n.腹,下腹(胸部到腿部的部分) maximum n.最大值,极限 a.最大的,最高的 bell n.钟,铃 equip v.(with)装备,配备;训练 expert n.专家,能手 a.熟练的,有经验的;专门的 final a.最终的,决定性的 n.结局;决赛;期末考试 cage n.鸟笼 perfection n.尽善尽美,完美 evaporate v.蒸发,挥发;沉淀;发射;消失 violence n.猛烈,强烈;暴力,暴行;强暴 train n.列车;行列,系列,一串 v.训练,培养 trace n.痕迹,踪迹;极少量 v.描绘;跟踪,追踪 crucial a.至关重要的,决定性的 frequency n.频率,周率 relief n.(痛苦等)减轻,解除;援救,救济 fundamental a.基础的,基本的 n.(pl.)基本原则,基本原理 april (名)四月 guard v./n.保卫,守卫,提防 n.哨兵,警卫,看守 ample a.充分的,富裕的;宽敞的,宽大的 worship n.礼拜,礼拜仪式;崇拜 v.崇拜,敬仰;做礼拜 trail n.踪迹,痕迹;小路 v.追踪,跟踪;拖,拖曳; heaven n.天,天空,天堂;(heaven)上帝,神 peaceful a.和平的,平静的,安宁的,爱好和平的 apparent a.表面上的,貌似真实的;显然的,明明白白的 gently ad.文雅地,有礼貌地;轻轻地 spite n.恶意;怨恨 reflection n.(reflexion)映像,倒影;反省,沉思 audio n./a.音频(响)(的);声音(的),听觉(的) dignity n.(举止,态度等的)庄严,端庄;尊贵,高贵 negro n.黑人 a.黑人的 analysis n.(pl.analyses)分析;分解 precious a.珍贵的,贵重的 wrench v.猛拧;挣脱;使扭伤 n.扳手;痛苦,难受 scar n.疤,疤痕;创伤 v.使留下伤痕,创伤 assistant a.帮助的,辅助的 n.助手,助教;辅助物 despite prep.不管,不顾 valve n.阀;(英)电子管,真空管;(心脏的)瓣膜 artistic a.艺术(家)的,美术(家)的;善于艺术创作的 staff n.全体职工;杠,棒;参谋部 v.配备工作人员 news n.新闻,消息;新闻报道,新闻广播 meadow n.草地,牧场 nut n.坚果;螺母,螺帽 bound v./n.跳(跃) a.被束缚的,一定的;n.界限 naughty a.顽皮的,淘气的 volt n.伏特 abnormal a.反常的,不正常的,不规则的 consequently ad.结果,因此,所以 job n.工作,职位;零活,一件工作;任务,职责 perfect a.完善的;完全的;(语法)完成的 v.使完美 shave v.剃,刮,刨,削 n.刮脸 whisper v.耳语;私下说,偷偷告诉 n.耳语;传闻 safe a.安全的,牢靠的;谨慎的,可靠的 n.保险箱 linen n.亚麻布,亚麻布制品 measure v.测量,分派,权衡 n.尺寸,量度器,措施,办法 motel n.(附有停车场的)汽车旅馆 present a.出席的,现在的 n.现在,礼物 v.赠送,提出 barren a.贫瘠的;不育的;(植物)不结果的;无用的 gather v.聚集,聚拢;推测,推断 screw n.螺旋,螺丝(钉) v.拧,拧紧 comment n.注释,评论,意见 v.(on)注释,评论 heritage n.遗产,继承物;传统 seaside n.海滨,海边 violent a.猛烈的,激烈的;暴力引起的,强暴的 craft n.工艺,手艺,技巧;飞机,飞船 honor n.(honour)尊敬,敬意;荣誉,光荣 v.尊敬 shaft n.轴;杆状物 wrist n.腕,腕关节 patriotic a.爱国的 centre n.中心,中央,中间 vt.集中 vi.以..为中心 live v.活着,生活,居住 a.活的,生动的,直播的 powerful a.强大的,有力的,有权的 historic a.有历史意义的;历史的 injury n.伤害,损害 vulnerable a.易受攻击的 sightseeing n.观光,游览 beyond prep.在(或向)...的那边,远于;超出; revelation n.揭示,揭露,显示,启示,新发现,被揭露的事 visitor n.访问者,客人,来宾,参观者 resemble v.像,类似 axis n.轴,轴线,中心线;坐标轴,基准线 use n.使/应用;用法/途;益/用处 vt.用;消耗 produce v.生产,制造,显示,演出,导致 n.产品 portable a.轻便的,手提(式)的,可移动的 embark v.(使)上船(或飞机,汽车等);着手,从事 charity n.慈善(团体),仁慈,施舍 brother n.兄弟;同胞;教友 curiosity n.好奇心;古董,古玩 bleak a.荒凉的;冷酷的;没有希望的 adjoin v.临近,靠近;贴近,毗连 fridge n.(refrigerator的略语)冰箱 accelerate v.使加速,使增速,促进 vi.加快,增加 pity v.(觉得)可怜,惋惜 n.憾事,怜悯 text n.正文,文本;原文;教科书 unfortunately ad.不幸地 friendship n.友谊,友好 tremendous a.巨大的,极大的 situation n.形势,处境,状况;位置,场所;职位,职务 include v.包括,包含,计入 remote a.远的,遥远的,疏远的,偏僻的,细微的 historical a.历史的;有关历史的 list n.表,目录,名单 v.把…编列成表,列入表内 custom n.习惯,风俗,惯例;(pl.)海关,关税 east n.东,东方,东部 a.东方的,东部的 afford vt.担负得起(损失、费用、后果等),买得起 decide v.决定,下决心;解决,裁决 mess n.混乱,混杂,脏乱 v.弄脏,弄乱,搞糟 flame n.火焰,火苗;热情;光辉 v.发火焰,燃烧 interest n.(in)兴趣,重要性;利益v.(in)使发生兴趣 complaint n.抱怨,诉苦,怨言,控告;疾病 goodby int.(goodbye)再见 layoff n.临时解雇,操作停止,活动停止期间,失业期 elbow n.肘,(衣服的)肘部vt.用肘推,用肘挤 collide vi.[with]互撞,碰撞;冲突,抵触 greedy a.贪吃的,贪婪的,渴望的 forgive v.原谅,饶恕 stage n.舞台,戏剧;阶段,时期 science n.科学;学科 brittle a.易碎的;脆弱的;冷淡的;(声音)尖利的 skim vt.撇去(液体表面)之漂浮物 vi.轻轻掠过 swim vi.游泳;游;漂浮;眩晕;充溢 vt.游过 n.游泳 drug n.药物;麻醉品;毒品;滞销货 v.下麻药;吸毒 academy n.(高等)专科院校;学术社团,协会,研究院 bark vi.(狗等)吠,叫n.吠声,叫声;树皮 fork n.叉,耙;叉形物;餐叉 cherish vt.抱有,怀有(希望等);爱护,抚育;珍爱 license n.(licence)许可证,执照 v.准许,认可 fast a.快的,迅速的;坚固的 ad.紧紧地;迅速地 alone a.单独的,孤独的 ad.单独地,独自地;仅仅 album n.(同一表演者的)集锦密纹唱片;集邮册,相册 merge v.(使)结合,(使)合并,(使)合为一体 birth n.出生,诞生;出身,血统;起源;出现 manufacture v.制造,加工 n.制造,制造业;产品 cape n.海角,岬;披肩,短披风 bite v./n.咬,叮 n.一口 collective n.集体 a.集体的,共同的 tongue n.舌;语言 inertia n.不活动,惰性;惯性 hire n./v.雇用,租借 criticism n.评论性的文章,评论;批评,指责,非难 daily a.每日的 ad.每日,天天 n.日报 army n.军队,陆军,军;大群,大批 crystal n.水晶,水晶饰品;结晶 a.水晶的,透明的 lab n.(laboratory)实验室 spiritual a.精神(上)的,心灵的 son n.儿子;孩子(长者对年青或年幼男子的称呼) distill vt.蒸馏,用蒸馏法提取;吸取,提炼 loose a.(宽)松的;不精确的;自由的,散漫的 irrigate vt.灌溉,修水利 vi.进行灌溉 brilliant a.光辉的,灿烂的;卓越的,有才华的 meet n.会,集会 v.遇见;会谈;迎接;满足;符合 insight n.洞察力,见识 sock n.(pl.)短袜 northwest n.西北方,西北部a.西北的ad.向西北,在西北 place n.地方;名次;地位;寓所 v.安排;放置;投(资) silent a.寂静,沉默的 favor n.(favour)好感;喜爱;关切v.赞成,支持,偏爱 naked a.裸体的,无遮敝的,无掩饰的 internal a.内部的,内的;国内的,内政的 choice n.选择(机会),抉择,选择项;入选者 a.精选的 eternal n.永久的,永恒的 excess a.过量的,额外的 n.过量;过剩;超额;无节制 exclusive a.独占的;排他的;孤高的;唯一的;高级的 admire vt.钦佩,赞赏,羡慕;称赞,夸奖 common a.普通的;共同的;一般的;n.公有地 usual a.通常的,平常的 purify v.使纯净,提纯 pipe n.管子,导管;烟斗;笛 economics n.经济学,经济情况 round a.圆的prep.围绕ad.在周围v.绕行n.(一)回合 empty a.空的;空洞的 v.倒空,使成为空的 glimpse n./v.一瞥,瞥见 compact a.紧密的,结实的;简明的 v.使紧凑,压缩 overnight a.通宵的,晚上的 ad.在昨夜,一夜工夫,突然 specialist n.专家 withhold vt.使停止;拒给;保留;抑制 vi.忍住 chronic a.(疾病)慢性的;积习难改的;严重的,坏的 logic n.逻辑,逻辑学 flatter vt.奉承;使高兴;使满意;胜过 consumption n.消费(量),消耗 crown n.王冠,冕;君权,君王 v.为…加冕 mill n.磨粉机,磨坊;作坊,工厂 sideways ad./a.向旁边(的),侧身,横着(的),斜着(的) expose v.(to)使暴露,受到;使曝光 hate v.恨,憎恨;不愿,不喜欢 n.恨,憎恶 sting v./n.刺,刺痛,剧痛;刺,叮 hawk n.鹰,隼 testimony n.证据,证词;表明,说明 howl n.怒吼,嗥叫 vi.(风等)怒吼,咆哮 bear n.熊 v.忍受,容忍;负担;结果实,生子女 tie n.领带;联系,关系,纽带;束缚 v.扎,系,捆 bulk n.体积,容积;主体,大批,大量,大块 deal v.处理;做买卖,经营;分配;对待 n.交易 frame n.框架;体格;骨架;组织;机构 v.设计;制定 fog n.雾气,雾 v.以雾笼罩,被雾笼罩 fault n.过失,过错;缺点,毛病 trick n.诡计,骗局;恶作剧;窍门 vt.欺骗,哄骗 madame n.(madam)夫人,太太,女士 spy n.间谍 v.当间谍,刺探;察觉,发现 ankle n.足踝,踝关节 thermometer n.温度计 from prep.从,自从;由于;离;根据,按;去除 lantern n.灯,灯笼 meanwhile n.其时,其间 ad.当时,与此同时 travel n.旅行 v.旅行;行进,传播 economical a.节约的,经济的 murder v./n.谋杀,凶杀 instrumental a.仪器的;器械的;乐器的;起作用的;有帮助的 awkward a.笨拙的;尴尬的;使用不便的;难处理的 fixture n.固定设备;预定日期;比赛时间;定期存款 stimulate v.刺激,使兴奋;激励,鼓舞 force n.力量,力;势力;(pl.)(总称)军队 v.强迫 commission n.委员会;委任,委托(书),代办;佣金,手续费 enemy n.敌人,仇敌,反对者;敌人,敌军,敌国 stripe n.长条,条纹;军服上表示军阶的臂章条纹 usually ad.通常,平常 overseas a.外国的,海外的 ad.在海外 hook n.钩,吊钩,钩状物 v.钩住 zero n.零,零度 num.零 necessitate v.使成为必要,需要 periodical n.期刊,杂志 a.周期的,定期的 comfortable a.舒适的,舒服的;感到舒适的,安逸的 proclaim v.宣告,声明 sweep v.扫,打扫;席卷,冲光;扫过,掠过 expedition n.远征(队),探险(队) for prep.为了;给;代替;向;支持 conj.因为? foremost a.最先的;最初的; 主要的 ad.首要地 variation n.变化,变动;变种,变异 container n.容器;集装箱 clue n.线索,暗示 opening n.开,开放,开始,空缺,机会 a.开始的,开幕的 utter v.说,发出(声音) a.彻底的,完全的 sustain vt.支撑,撑住;维持,持续,经受,忍耐 build vt.建造,建筑;建设,建立 vi.增大,增强 uproar n.骚动,喧嚣,鼎沸 transistor n.晶体管;晶体管收音机 relate v.叙述,讲述;使互相关联 erosion n.腐蚀,磨损;削弱,减少 employ n./v.雇用;用,使用 cannon n.大炮,火炮 stab v./n.刺,戳 metric a.米制的,公制的 agony n.(精神或肉体的)极大痛苦,创伤 attempt vt.企图,试图 n.努力,尝试,企图 enough a.(for)足够的 n.足够,充分 ad.足够地 cucumber n.黄瓜 apt a.恰当的,适当的;易于…的,有…倾向的 chest n.胸腔,胸膛;箱,柜 unlikely a.未必的,靠不住的 officer n.官员,办事员;工作人员;军官 assembly n.集合;会议;装配;(美)洲议会的众议院 fifty num.五十,五十个 male n./a.男性(的),雄性(的) warm a.温暖的,热心的,热情的 v.(使)变暖 preserve v.保护,维持;保存,保藏 always ad.总是,无例外地;永远,始终 rejoice v.(使)欣喜,(使)高兴 unless conj.除非 prep.除…外 yellow a.黄的,黄色的 n.黄色 justify v.证明...正当(或有理、正确),为...辩护 active adj.活跃的,敏捷的,积极的;在活动中的 outrage n.暴行,侮辱,愤怒 v.凌辱,引起…义愤,强奸 instrument n.工具,仪器,器械;乐器 objection n.(to)反对,异议,不喜欢,反对的理由 blanket n.毯子(可数);厚厚一层(可数) vt.铺上一层 demand n./v.要求,请求,需要(量) v.查问 leave v.离开;留下,忘带;让,听任;交付n.许可;假期 fluid a.流动的,液体的 n.流体,液体 sham n./a.假冒(的),虚伪(的) have v.有,具有;体会,经受;从事;使;吃,喝 literature n.文学,文学作品,文献,图书资料,印刷品 discern v.认出,发现;辨别,识别 auxiliary a.辅助的,支援的 n.辅助者,辅助设备 experiment n.实验;试验 v.(on)进行实验;做试验 learn v.学习,学,学会;(of,about)听到,获悉 flag n.旗 power n.力,精力;功率,电力;(数学)幂;权力,势力 disturbance n.动乱,骚乱,干扰 cart n.(二轮货运)马车,手推车 insurance n.保险,保险费,保险业 certificate n.证(明)书,执照 university n.(综合)大学 advice n.劝告,忠告,(医生等的)意见 profound a.深刻的,意义深远的;渊博的,造诣深的 negligible a.可忽略不计的,微不足道的 religion n.宗教,信仰 detector n.发现者,侦察器,探测器,检波器,检电器 sorrow n.悲衰,悲痛 toy n.玩具 vi.(with)漫不经心地考虑;摆弄 entitle v.给以权利(或资格);给…称号(题名);授权 permanent a.永久的,持久的 greenhouse n.温室 interior a.内部的,里面的 n.内部,内地 tap n.塞子;水龙头; n./v.轻打,轻敲; vt.开发 solo n.独奏 a.&ad.单独的(地);独唱的(地) flow v.流,流动 n.流量,流速 parallel a.平行的,相同的,类似的n.平行线,类似,对比 regarding prep.关于,有关 performance n.履行,执行;表演,演出;性能,特性;成绩 consideration n.需要考虑的事,理由;考虑,思考;体谅,照顾 desk n.书桌,办公桌,服务台 cancel v.取消,把…作废;删去,划掉 pioneer n.先驱,倡导者,开拓者 season n.季,季节,时节 finish n.完成;结束;磨光 v.完成;结束;用完;毁掉 horrible a.令人恐惧的,可怕的;极讨厌的,糟透的 fee n.费(会费,学费等);酬金 arrow n.箭,矢,箭状物;箭头符号 catch v.捕捉,捕获;赶上;感染;理解,听到 golf n.高尔夫球 storage n.贮藏(量),保管;库房 bother vt.打扰,麻烦 vi.担心,烦恼 n.烦恼,焦急 militant a.好战的,富于战斗性的 n.斗士 state n.状态,情况;国,州 v.陈述,说明 analytic a.(analytical)分析的;分解的 band n.条,带;乐队;波段;一群,一伙 v.缚,绑扎 shake n./v.摇动,摇;颤抖,震动 harness v.治理,利用 n.马具,挽具 reality n.现实,实际;真实 lag v./n.落后,滞后 vt.用隔热材料覆盖(锅炉等) desirable a.值得做的;合意的,称心的;期望得到的 cosmic a.宇宙的;无比巨大的,无穷尽的 graphic a.绘画似的, 图解的,生动的 emergency n.紧急情况,突然事件,非常时刻 short a.短的,矮的;(of)缺乏,不足 n.(pl.)短裤 ratio n.比,比率 auction n./vt.拍卖 scarf n.围巾,头巾,领巾,领带 metal n.金属,金属制品 canteen n.(工厂、办公室等)食堂或小卖部 battle n.战役,战斗;斗争 v.战斗,斗争,搏斗 signal n.信号,暗号 v.发信号,用信号通知 retail n.零售 fortune n.运气;命运;财产;财富 superior a.优良的,卓越的;上级的 n.上级;长者;高手 clasp n.扣子,钩子;握手 v.扣住,钩住;紧握,紧抱 sport n.(体育)运动 (pl.)运动会 vi.开玩笑;玩耍 numerous a.众多的,许多的,大批的 ritual a.宗教仪式的,典礼的 n.(宗教)仪式,典礼 classify v.分类,分等(级) zoo n.动物园 incredible a.不可相信的,惊人的,不可思议的 some a.几个;一些;有些;某(人或物) pron.一些 industrial a.工业的,产业的 prize n.奖赏,奖金,奖品 v.珍视,珍惜 rail n.栏杆,围栏;(pl.)铁路;铁轨;横杆,栏杆 bath n.沐浴,洗澡;浴室(池,盆) v.(给…)洗澡 sane a.心智健全的,神志清醒的,明智的,稳健的 lap n.大腿,(跑道的)一圈,一段路程,工作阶段 practise v.练习,实习,实践,实行,使...练习,训练 borrow vt.借,借入;(思想、文字等)采用,抄袭 native a.本地的,本国的;天生的 n.本地人,本国人 descent n.下降,降下;斜坡;血统,家世 locality n.位置,地点 territory n.领土;版图;领域,范围 nursery n.托儿所 training n.训练,培养 invaluable a.非常宝贵的,无价的 love n.爱,爱情,喜欢 vt.爱,热爱;爱好,喜欢 hearing n.听,倾听;听力;审讯 cylinder n.圆筒,圆锥体;汽缸 follow v.跟随,接着;领会;沿着…前进,遵循;结果是 stone n.石,石头;岩石,矿石;(水果的)核、子 people n.人们,人;[the-]人民;一国人民,民族 good a.好的;善良的;擅长的;乖的 n.好处;利益 reading n.读书,读物,(仪表等的)读数,阅读 navy n.海军 financial a.财政的,金融的 forbid v.禁止,不许 source n.源,源泉;来源,出处 momentum n.动力,要素 tiresome a.使人厌倦的,讨厌的 treasure n.财宝,财富;珍品 v.珍爱,珍惜 shelter n.掩蔽处;掩蔽,保护 v.掩蔽,躲避,庇护 effort n.努力;成就;艰难的尝试 daylight n.日光,白昼,黎明 coincide vi.同时发生;巧合;一致;相符; plant n.植物,作物;工厂;装置 v.栽种,播种,栽培 tragedy n.悲剧;惨事,灾难 breakfast n.早餐 v.(给某人)吃早餐 association n.联盟,协会,社团;交往,联合;联想 soak v.浸泡,浸湿,浸透 pearl n.珍珠 contemporary a.现代的,当代的;同时代的 create v.创造,创作;引起,造成,建立 spider n.蜘蛛 corrupt v.贿赂,收买 a.腐败的,贪污的 transaction n.办理,处理;交易,事务;(pl.)会报,学报 void a.空虚的;没有的;无效的 claim v.要求;声称;索赔 n.要求;断言;索赔;权利 offspring n.子孙,后代;结果,产物 sack n.袋,包,麻袋 v.解雇 butter n.黄油,奶油 v.涂黄油于…上 holiday n.假日,节日,假期,休假 endow vt.资助,捐赠;(with)给予,赋予 flash n./a.闪光(的) v.发闪光,闪亮;闪现 tradition n.传统; 惯例; 传说 grin n./vi.露齿而笑,咧嘴一笑 agree vi.答应,赞同;适合,一致;商定,约定 premium n.额外费用,奖金,奖赏,保险费 ski n.雪橇 v.滑雪 juice n.(水果等)汁,液 phenomenon n.现象,稀有现象,珍品,奇迹,杰出人才 garment n.(一件)衣服 small a.小的;年幼的;不重要的;小规模(经营)的 accurate a.正确无误的;准确的,精确的 relay v.中继,转播,接力 n.接替人员,替班 quantity n.量,数量;大量 petrol n.汽油 risk v.冒…的危险 n.冒险;风险 harden v.(使)变硬 principle n.原理,原则;主义,信念 sensitive a.(to)敏感的,易受伤害的;灵敏的 selfish adj.自私的,利己的 torrent n.激流,洪流;爆发,(话语等的)连发 crawl v./n.爬行,蠕动;缓慢(的)行进 sudden a.出乎意料的,突然的 notion n.概念,想法,意念,看法,观点 underlying a.含蓄的,潜在的;在下面的 intrinsic a.(指价值、性质)固有的,本质的,内在的 sacred a.神圣的;宗教的;庄严的 negative a.否定的,消极的,阴性的n.负数;(摄影)底片 temporary a.暂时的,临时的 trench n.&v.(挖)沟,(挖)战壕 near a.近的,接近的;亲近的 prep.靠近 ad.接近 format n.(出版物的)开本,版式,格式 vt.设计;安排 dread v./n.恐惧,担心 tactic n.(tactics)策略,战术 hut n.小屋,棚屋 expectation n.预期,期望,指望 fairly ad.公正地,正当地;相当,还算 appetite n.食欲,胃口;欲望,性欲;爱好,趣味 candle n.蜡烛 plausible a.似是而非的,似乎合理的,似乎可信的 health n.健康,健康状况;卫生 infer v.推论,推断 drought n.旱灾,干旱 timely a.及时的,适时的 generate vt.产生,发生;生殖 terrific a.极好的,非常的,极度的 themselves pron.他(她、它)们自己;他(她、它)们亲自 sheer a.纯粹的,十足的,全然的;陡峭的,险峻的 credential n.凭证,(pl.)国书,证明书 subtle a.精巧的,巧妙的;细微的,微妙的 fisherman n.渔夫,捕鱼人 glory n.光荣,荣誉 saddle n.鞍,马鞍,鞍状物 geology n.地质(学) accordingly ad.相应地,照着办,按照;于是,因此 flood n.洪水,水灾 v.淹没,发大水,泛滥 reputation n.名誉,名声,声望 bias n./v.(使有)偏见,偏心,偏袒 royal a.王室的,皇家的;第一流的,高贵的 report n./v.报告,汇报;传说,传阅 intellectual n.知识分子 a.智力的,理智的,有理解力的 missing a.漏掉的,失去的,失踪的 pride n.自豪;自满;引以自豪的东西 v.使自豪 classification n.分类,分级 entertainment n.招待,款待;表演文娱节目 strategy n.战略,策略;对策,政策 manager n.经理,管理人 hydrogen n.氢 cluster n.丛,群,串 v.群集,丛生 misunderstand v.误解,误会 garlic n.蒜,大蒜粉 pendulum n.摆,钟摆 never ad.永不,从不,决不;从来没有;不,没有 camera n.照相机,摄影机 discreet a.(言行)谨慎的;慎重的;有判断力的 test n./vt.试验;检验;测验 household n.家庭,家人 a.家庭(务)的,家常的 single a.单人的;单一的,单个的;未婚的,独身的 peach n.桃,桃树 up-to-date a.现代化的,最新的;跟上时代的 music n.音乐,乐曲,乐谱 investigate v.调查,调查研究 differentiate v.区分,区别;(使)不同 resistance n.(to)抵抗,反抗;抵抗力,阻力;电阻 split v.裂开,劈开;分裂,分离 n.分化,分裂,裂口 jug n.(有柄,小口,可盛水等的)大壶,罐,盂 blame v.责备;怪,把…归咎于 n.责任,过错;责备 realm n.王国,国土;领域 free a.自由的;免费的;免税的;空闲的 vt.释放 fare n.车费,船费;伙食;乘客 v.过活;进展;经营 fantastic a.(fantastical)奇异的,幻想的,异想天开的 success n.成就,成功;成功的事物,有成就的人 experience n./vt.经验;经历;体验;阅历 orthodox a.传统的,正统的,习惯的,保守的,东正教的 infrared a./n.红外线(的) sticky a.粘的,粘性的;棘手的;(道路)泥泞的 rage n.愤怒 agreeable a.符合的;一致的;欣然同意的;令人愉快的 recycle v./n.再循环,重复利用 angry a.生气的,愤怒的;(天气)风雨交加的 bottom n.底(部);基础,根基;海底,湖底,河床 dim a.暗淡的,模糊的 horizontal a.地平线的;水平的 dose n.剂量,一服,一剂 v.(给…)服药 solution n.解答,解决办法;溶解,溶液 spirit n.精神;志气;(pl.)情绪,心情;(pl.)酒精 invisible a.看不见的,无形的 adore vt.崇拜,敬慕,爱慕;非常喜欢 banquet n.(正式的)宴会 vi.参加宴会 vt.宴情 range n.范围,领域;排列,连续;(山)脉v.排列成行 arrival n.到达,到来;到达者,到达物 task n.任务,作业,工作 acquaintance n.认识,相识,了解;相识的人,熟人 transform vt.改变,变换;变压;转化;改造,改造 transition n.转变,变迁,过渡(时期) climax n.顶点,高潮 bonus n.奖金,红利 cousin n.堂(或表)兄弟,堂(或表)姐妹 differ v.(from)与…不同;(with)与…意见不同 sway vi.摇动;倾斜 vt.使摇动 n.摇动;影响力 purchase v.买,购买 n.购买的物品 breadth n.宽度,幅 restrict v.限制,约束 farm n.农场,饲养场 v.种田,经营农牧业 cube n.立方形,立方体;立方,三次幂 bacterium n.(pl.)bacteria 细菌 simplify v.简化,使单纯 fool n.傻子,笨蛋vt.欺骗,愚弄vi.干蠢事 follow v.跟随,接着;领会;沿着…前进,遵循;结果是 enormous a.巨大的,庞大的 ballot n.(不记名)投票;投票总数;投票权 vi.投票 save v.救,拯救;储蓄,贮存;节省 burglar n.(入室行窃的)盗贼 dip v./n.浸,蘸 sprout vi.发芽,抽条 vt.使发芽 n.新芽,嫩苗 away ad.在远处;离开;渐渐远去;一直;去掉 telephone n.电话,电话机 v.打电话 sympathy n.同情,同情心;赞同,同感;慰问 mild a.温和的,轻微的,味淡的,不含有害物质的的 frequent a.时常发生的,频繁的 reject v.拒绝,抵制,丢弃,排斥,退掉 n.落选者 statute n.成文法,法令,法规;章程,规则,条例 sofa n.长沙发,沙发 damage v./n.损害,毁坏 n.(pl.)损害赔偿费 fur n.毛,毛皮 reluctant a.不愿的,勉强的 item n.条(款),项目;一则(新闻),(戏剧的)节目 reception n.接待,招待会;接收,接受,接收效果 yes ad.是[用于肯定句前],是的 accumulate vt.堆积,积累,积聚vi.累积,聚积 hello int.英(美)喂,你好(用来打招呼或引起注意) ghost n.鬼魂,幽灵 patience n.耐心,忍耐 rest n.休息;剩余部分 v.休息;睡;放,靠,搁 exempt a.免除的 v.免除 n.免税者;被免除义务者 microphone n.话筒,扩音器 result n.结果,成绩 v.结果,致使,导致,由…而造成 strap n.皮带,带子v.用带扣住,束牢;用绷带包扎 ingredient n.(混合物的)组成部分,配料;成份,要素 insult vt./n.侮辱,凌辱 august n.月 outbreak n.(战争,愤怒,火灾等的)爆发,(疾病的)发作 comparable a.(with,to)可比较的,比得上的 preparation n.准备,预备;制剂,制备品 evade vt.逃避,回避;避开,躲避 auto n.(automobile)(口语)汽车 freeze v.使结冰,使凝固 dean n.(大学)院长;主持牧师; (基督教)教长 fragrant a.香的;芬芳的 spray n.喷雾,飞沫,浪花,水花 v.喷,喷射 straw n.稻草,麦杆;吸管 steak n.牛排;大块肉(或鱼)片 correspondence n.通信,信件;(with)符合;(to)相当于,对应 lemon n.柠檬 hijack v.劫持,劫机,拦路抢劫 mind n.精神,理智,意见,记忆力v.注意,介意,反对 realise v.(realize)认识到,体会到;实现 treaty n.条约,协议,协商 picture n.画,图片;影片;美景 v.画,描述,想象 industry n.工业,产业;勤劳,勤奋 nowhere ad.任何地方都不,没有地方 thought n.思想,思考,思维;意图,打算;想法 salute v./n.敬礼,鸣礼炮;迎接,欢迎 explicit a.详述的,明确的;坦率的;显然的 cross n.十字(架);苦难 a.交叉的;发怒的 v.穿过 full a.(of)满的,充满的 a./ad.完全,充分 proceed v.进行,继续下去;发生 hazard n.危险,冒险,危害 v.冒险,拼命 desert n.沙漠,不毛之地 v.抛弃,遗弃;擅离,开小差 buffet n.自助餐 inhibit vt.抑制,约束 bond n.结合(物),粘结(剂),联结;公债,债券,契约 gear n.齿轮,传动装置 v.(to)调整,使适合 heroine n.女英雄;女主角 quantify v.确定数量 o'clock ad.(…)点钟(与至数字连用) necessary a.必需的,必要的;必然的 n.必需品 forehead n.前额;(任何事物的)前部 frighten v.使惊恐 decline v.下降,衰落;拒绝 n.下降;斜面,倾斜,衰落 victory n.胜利 alcohol n.酒精,乙醇;含酒精的饮料 tempt v.诱惑,引诱;吸引,使感兴趣 spin v.旋转;纺纱;织网,吐丝 n.旋转;自转 practice n.练习,实践,实际,业务,惯例,习惯 family n.家,家庭成员;氏族,家庭;族,科 secure a.(from,against)安全的,放心的v.得到;防护 logical a.逻辑的,符合逻辑的 mug n.(有柄的)大茶杯 calorie n.卡路里(食物所产生的热量或能量单位) accompany v.陪伴,陪同;伴随,和...一起发生,伴奏 silly a.傻的,糊涂的,愚蠢的 irony n.反话, 讽刺, 讽刺之事 rare a.稀有的,难得的,珍奇的;稀薄的,稀疏的 unusual a.不平常的,与众不同的 waste v.浪费 a.无用的;荒芜的 n.浪费;废物 transcend vt.超出,超越(经验、知识、能力的范围等) enterprise n.事业,企(事)业单位;事业心,进取心 dot n.点,圆点 v.在…上打点 carrot n.胡萝卜 obedient a.服从的,顺从的 affair n.[pl.]事务;事情(件);(个人的)事 origin n.起源,由来;出身,来历 beast n.兽,牲畜;凶残的人,举止粗鲁的人 correspond v.通信,(with)符合,一致;(to)相当于,对应 dream n./v.梦,梦想,幻想 saturday n.星期六 serial n.连载小说,连续剧;连载刊物 a.连续的 privilege n.特权,优惠,特许 v.给予优惠,给予特权 eject v.喷射,排出;驱逐 mostly ad.几乎全部地;主要地,大部分,基本上 blade n.刀刃,刀片;桨叶;草叶,叶片 fabulous a.极好的;极为巨大的;寓言中的,传说中的 badly ad.非常,严重地;坏地,差地,拙劣地 moist a.潮湿的,湿润的,多雨的 contaminate v.弄污,弄脏,毒害,传染,染污 dictate v.口授;(使)听写;指令,指示,命令; stadium n.体育场 saucer n.茶托,碟子 profession n.职业,专业,表白,宣布 sail n.帆,航行 v.航行 serve v.服务,尽责;招待,侍候;符合,适用 rose n.玫瑰,蔷薇 mutton n.羊肉 focus n.焦点,(活动,兴趣等的)中心 v.(on)使聚集 exciting a.令人兴奋的,使人激动的 size n.大小,尺寸,规模;尺码 oneself pron.[反身代词]自己;亲自,本人 baby n.婴儿;年龄最小的人;小动物 a.婴儿似的 sphere n.球,球体;范围,领域 passage n.通过,经过;通路,走廊;(一)段落,(一)节 prime a.首要的;最好的,第一流的 n.青春,全盛期 warehouse n.仓库,货栈 dusk n.薄暮,黄昏 register n./v.登记,注册 v.(仪表等)指示,(邮件)挂号 bandage n.绷带 v.用绷带扎缚 clutch v.抓住,攫住,掌握 n.离合器 okay a.(okey,ok,o.k.)好,行,不错 n.同意 disregard vt.不理会;忽视;漠视 n.忽视;漠视 productive a.生产(性)的,能产的,多产的 solve v.解决,解答 entertain v.招待,款待;使娱乐;使欢乐;容纳,接受 philosopher n.哲学家,哲人 verge n.边,边缘 v.濒临 his pron.[he的所有格/物主代词]他的(所有物) frog n.蛙 root n.根,根部;根本,根源 v.(使)生根,(使)扎根 cemetery n.坟墓,墓地,坟场 purple a.紫的 n.紫色 monotonous a.单调的,无变化的 hose n.水龙带,软管 v.用软管(淋浇,冲洗) lunar a.月亮的 fine a.晴朗的,美好的,细致的 v./n.罚金,罚款 nuclear a.核心的,中心的;原子核的,核能的 him pron.他(he的宾格形式) battery n.电池(组);(器具等的)一组,一套;炮兵连 hopeful a.给人希望的,抱有希望的 college n.学院,高等专科学校,大学 vain a.徒劳的,徒然的;自负的,爱虚荣的 screen n.屏幕,屏风;帘 v.掩蔽,包庇;筛选 drawer n.抽屉 municipal a.市(立,政)的;地方性的,地方自治的 posture n.姿势,姿态,心态,态度 v.作出某种姿势 patch n.补丁,斑点,碎片小块 v.补,修补,掩饰 mutual a.相互的,彼此的;共同的,共有的 temperament n.气质,性格,性情;资质 missionary a.教会的,传教(士)的 n.传教士 avenue n.林荫路,大街;(比喻)途径,渠道,方法 somewhere ad.某地,在某处;在附近,前后,大约 formidable a.强大的;令人敬畏的;可怕的;艰难的 volunteer n./v.自愿(者,兵);自愿(提供) knowledge n.知识,学识;知道,了解 persuade v.说服,劝说;(of)使相信 shock n.震动;电击,触电;休克v.(使)震动/震惊 lecture n./v.演讲,讲课 advance n.前进,预付 vi.前进,进展 vt.促进,推进 rouse vt./vi.唤醒,唤起;激励;激起 explode v.(使)爆炸,(使)爆发 elegant a.优雅的;端庄的;雅致的 appear vi.出现;出场;问世;仿佛;出版,发表 advise vt.忠告,劝告,建议;通知,告知 relieve v.减轻,解除,援救,救济,换班 carbohydrate n.碳水化合物; 糖类;(plural)淀粉质或糖类 unit n.单位,单元;部件,元件;机组,装置 champagne n.香槟酒;微黄色 except prep.除…之外 v.除外;反对 sneeze vi.打喷嚏,发喷嚏声n.喷嚏 beauty n.美,美丽;美人,美丽的事物 low a.低,矮;低级的,下层的,卑贱的;低声的 fond a.(of)喜爱的,爱好的 arouse vt.唤醒,叫醒;唤起,激起 denote vt.表示,意味着 rocket n.火箭 information n.通知,报告;情报,资料,消息;信息 ruler n.统治者,支配者;尺,直尺 pain n.痛,痛苦;(pl.)努力,劳苦 vt.使痛苦 invite vt.邀请,招待 temptation n.引诱,诱惑;诱惑物 target n.目标,对象,靶子 character n.性格,品质,特性;人物,角色;字符,(汉)字 sly a.狡猾的,偷偷摸摸的 gun n.枪,炮,手枪 species n.(物)种,种类 deduct vt.扣除;演绎(推理) magistrate n.地方行政官,地方法官,治安官 freeze v.使结冰,使凝固 evaluate v.估价,评价;求…的值 tide n.潮,潮汐;潮流,趋势 expense n.花费,消费,消耗 fun n.玩笑,娱乐;有趣的人(或事物) recognize v.(recognise)认出,承认,公认,赏识,表扬 norm n.准则,规范,准则,平均数 plateau n.高原,平稳状态[时期] grandmother n.祖母,外祖母 statement n.声明,陈述 uphold vt.支持,赞成;举起;坚持 commend v.称赞,表扬:委托保管;推荐 consent v./n.(to)同意,赞成,答应 chorus n.合唱队;合唱 v.异口同声地说,随声附和 vacant a.空的,未占用的;空缺的;神情茫然的 further ad./a.更远,更往前;进一步 v.促进,增进 preach v.宣讲(教义),布道;竭力鼓吹,宣传;说教 merry a.欢乐的,愉快的 which a./pron.哪个,哪些;什么样的;那个,那些 bury v.埋(葬),安葬;埋藏,遮盖 department n.部,局,处,科,部门;系,学部 skip vi.略过,跳过 n.跳跃 vt.故意忽略;略过 degenerate v.衰退,堕落,蜕化 a.堕落的 n.堕落者 brutal a.残忍的;严峻的;严酷的 insect n.昆虫 organic a.器官的;有机的;有机体的 silicon n.硅 discount n.折扣;贴现(率) vt.打折扣;不重视 broadcast v./n.广播(节目) hurl vt.猛投,力掷;大声叫骂 cargo n.船货,货物 weep v.哭泣,流泪;滴下 n.哭泣 purpose n.目的,意图;用途,效果 valid a.有效的;有根据的;正当的 fresh a.新鲜的,无经验的 alarm n.惊恐;警报(器) vt.惊动,惊吓;向…报警 peculiar a.古怪的,异常的;特殊的,特有的 trial n.讯问,审讯;试验;试用;尝试 obscure a.暗的,朦胧的;模糊的,晦涩的 found vt.建立;创立;创办;使有根据;铸造;熔制 postage n.邮费,邮资 recreation n.娱乐,消遣 fellow n.人,家伙;伙伴,同事 a.同样的,同事的 repair n.修理,修补 v.补救,纠正;修理 paralyze v.(paralyse)使瘫痪(麻痹);使丧失作用 speciality n.(specialty)特性,性质;专业/长;特产 head n.头;顶部;领导,首脑 v.主管;位于..顶部 count v.数,计算;算入;看作,认为 n.计数,总数 lower a.较低的,下级的,下游的 v.降下,放低 stand vi.站立;位于;经受 n.台,座;货摊;立场 fairy a.幻想中的;虚构的;优雅的 n.仙女;精灵 bully n.恃强欺弱者,小流氓 vt.威胁,欺侮 dump v.倾倒,倾卸 n.垃圾场 blend n.混合(物) v.混和,混杂 mask n.面具,面罩;假面具,伪装 v. 掩饰,化装 multiple a.多样的,多重的 n.倍数 v.成倍增加 reasonable a.合理的,有道理的;通情达理的;适度的 clap v.拍手,拍,轻拍 n.拍(手),掌声,霹雳声 innovation n.改革,革新;新观念,新方法,新发明 inspiration n.灵感;鼓舞,激励 honey n.蜜,蜂蜜 abstract a.抽象的 n.摘要,梗概 vt.提取;摘录要点 fraud n.欺诈,诈骗;欺骗(行为);骗子;假货 muscle n.肌肉,体力 primitive a.原始的,远古的,早期的;粗糙的,简单的 outer a.外部的,外面的,外层的 whatever pron.无论什么 a.无论什么样的 tree n.树,树状物 vi.爬上树 worldwide a.全世界的,世界范围的 ad.遍及全世界 bay n.海湾,(港)湾 reader n.读者;读本,读物;(英国的)大学讲师 description n.描写,形容;种类 initial a.最初的,开头的;词首的 n.词首大写字母 stern a.严厉的;坚决的,坚定的 n.船尾,舟尾 token n.表示;标志;记号;代用硬币 a.象征性的 brand n.商标,标记,牌子 v.使铭记;打火印,打烙印 friendly a.友好的,友谊的 warfare n.战争(状态);斗争;冲突 hint n.暗示,提示,线索 v.暗示,示意 abound vi.大量存在;(in,with)充满,富于 pat v./n.轻拍,轻打,抚摸 fraction n.碎片,小部分,一点儿;分数 elevate vt.举起,提拔,振奋,提升...的职位 private a.私人的,个人的,秘密的,私下的 at prep.[表示价格、速度等]以,达;在..方面 these pron.&a.[this的复数]这些;这些人(东西) impress v.(on)印,盖印;留下印象,引人注目 lump n.团,块 v.(使)成团,(使)成块 jewelry n.(jewllery)(总称)珠宝 net n.网,网状物 v.用网捕,使落网 a.纯净的 burden n.担子,重担,负担 vt.给予负担或麻烦 prayer n.祈祷,祷告,祷文 guilt n.罪过,内疚 donkey n.驴子;蠢人;顽固的人 shade n.荫,阴影;遮光物,罩 v.遮蔽,遮光 approve v.(of)赞成,赞许,同意;批准,审议,通过 esteem n.尊敬,尊重 vt.尊重,敬重;把…看作 cripple n.跛子,残疾人 v.使跛,使残疾 spouse n.配偶(指夫或妻) architect n.建筑师;设计师;缔造者;创造者 cold a.冷的,寒冷的;冷淡的 n.冷,寒冷;伤风 skillful a.(skilful)(in,at)灵巧的,娴熟的 forgive v.原谅,饶恕 awe n.敬畏,惊惧vt.使敬畏,使惊惧 removal n.移动,迁居;除去 distinguish v.(from)区别,辨别;辨认出;使杰出 outing n.外出,旅行,散步 huddle n./v.拥挤;聚集v.(因寒冷、害怕而)缩成一团 injure v.损害,损伤,伤害 overall a.全面的,综合的 n.(pl.)(套头)工作服 heir n.继承人 instantaneous a.瞬间的,即刻的 grammar n.语法,语法书 simultaneous a.同时的,同时存在的 succession n.连续,系列;继任,继承 canal n.运河;(沟)渠 alike a.同样的,相像的ad.一样地;同程度地 buy vt.买,买得;向…行贿,收买vi.购买东西 gallery n.长廊,画廊,美术馆 volcano n.火山 nickel n.镍;镍币;五美分 dozen n.一打,十二个 region n.地区,地带,行政区,(科学等)领域 primitive a.原始的,远古的,早期的;粗糙的,简单的 clever a.聪明的,伶俐的,机敏的,精巧的 estate n.房地产;不动产;所有权;地位;生活状况 sad a.悲哀的,忧愁的 infinite a.无限的,无穷的 n.无限 charm n.吸引力,魅力 v.迷人,(使)陶醉;施魔法于 horror n.恐怖,战栗 money n.货币,钱 reform v./n.改革,改造,改良 electric a.电的,导电的,电动的 mistake n.错误,过失,误解 v.弄错;(for)把…误认为 embarrass vt.使困窘,使局促不安;阻碍,麻烦 barely ad.赤裸裸地,无遮蔽地;仅仅,勉强,几乎没有 housewife n.家庭主妇 bull n.公牛 bearing n.轴承;忍受;关系,影响;举止;方向 mission n.使命,任务;使团,代表团 circuit n.环行,周线,巡回;电路,线路 threshold n.门槛;入门,开端 forever adv.(for ever)永远;总是 throughout prep.遍及,贯穿 ad.到处,自始至终,彻底 capable a.有本领的,有能力的;(of)可以…的,能…的 coward n.懦夫,胆怯者 vegetable n.蔬菜,植物 a.植物的,蔬菜的 parliament n.国会,议会 effect n.结果;效果;影响;印象 vt.招致;实现;达到 assimilate vt.吸收,消化;使同化 vi.被吸收;被同化 indoor a.室内的,户内的 rumor n.(rumour)传闻,谣言 cautious a.(of)小心的,谨慎的 expand v.(使)膨胀,(使)扩张;张开,展开 pilot n.飞行员;领港员 v.驾驶(飞机等);领航,引水 underneath prep.在…下面 ad.在下面,在底下 rough a.粗糙的;粗略的,大致的;粗野的,粗暴的 flaw n.裂缝;缺陷 v.使破裂;使有缺陷 reckless a.不注意的,大意的,卤莽的,不顾后果的 column n.圆柱,柱状物;列;(报刊中的)专栏 prime a.首要的;最好的,第一流的 n.青春,全盛期 transmit vt.传输/导;转送;发射 vi.发射信号;发报 distinction n.区别,差别;级别;特性;声望;显赫 shady a.成荫的,多荫的;可疑的,靠不住的 shrink v.起皱,收缩;退缩,畏缩 thrill n.一阵激动(恐惧) v.激动;(使)毛骨悚然 white a.白色的;苍白的;白种的 n.白色;白种人 withstand vt.抵抗,经受住 large a.大的,广大的,大规模的 wolf n.狼 kidney n.肾,肾脏 salt n.盐,盐,类 v.腌,盐渍 function n.功能,作用;(pl.)职务;函数 v.起作用 event n.事件,事情 need aux.v./v.需要;必须 n.需要;贫困,困窘 separate a.(from)分离的,分开的 prefer v.(to)更喜欢,宁愿 fame n.名声;名望;传说 vt使出名;传扬…的名 feat n.功绩,伟业,技艺 plastic n.(常pl.)塑料,塑料制品 a.可塑的,塑性的 hoist v.举起,升起,吊起 abolish vt.废除(法律、习惯等);取消 tag n.标签;鞋带;垂饰;vt.加标签于;附加vi.紧随 fourteen num.十四,十四个 humanity n.人类,人性,人情;(pl.)人文科学 world n.世界,地球;…界,领域;世间;全世界 directory n.人名地址录,(电话)号码簿 republic n.共和国,共和政体 afraid adj.害怕的,恐惧的;犯愁的,不乐意的 privacy n.(不受干扰的)独处,自由,隐私;私生活 rather ad.相当,有一点儿;宁愿,宁可 hunt v./n.打猎,猎取;(for)搜索;寻找 envelope n.信封,信皮;封套 slit v.切开,截开,纵割 n.细长裂缝,狭长切口 latitude n.纬度,行动或言论的自由(范围),(pl.)地区 thoughtful a.认真思考的,沉思的;体贴的,关心的 dismay n./v.(使)沮丧;(使)惊慌;(使)失望,(使)绝望 prohibit v.禁止,不准;阻止 overwhelm v.淹没,覆没,压倒,制服,使不知所措 come v.来;出现于,产生;是,成为;开始,终于 revolution n.革命;旋转,转数 blackboard n.黑板 collaborate vi.协作,合作;(与敌人)勾结 dark a.黑暗的,深(色)的;隐秘的;n.无光,黑暗 humidity n.湿气,湿度 stair n.(pl.)楼梯 ugly a.丑陋的,难看的;丑恶的,讨厌的 beside prep.在...旁边,在...附近;和...相比 salad n.色拉,凉拌菜 box n.盒,箱;包厢 v.把…装箱;拳击,打耳光 bring v.拿来,带来;产生,引起;使处于某种状态 astronomy n.天文学 nonsense n.胡说,废话 fan n.扇子,风扇;(影,球等)迷 v.扇,扇动,激起 throne n.御座,宝座;王位,王权 aware a.知道的,意识到的; segment n.段,片,节,部分 dry a.干(旱)的;干渴的;枯燥 vt.使干燥,晒干 orbit n.轨道 v.(使)沿轨道行 student n.(大中学校的)学生;研究者,学者 bible n.圣经 crowd n.人群;一群,一伙 v.聚集,群集;挤满,拥挤 ash n.灰,灰末;(pl.)骨灰;(pl.)废墟 figure n.体形;轮廓;数字;图形v.描绘;计算;推测 tribe n.种族,部落;(植物,动物)族,类 number n.数,数字,数量,号码,一群 v.共计,编号 prominent a.突起的,凸出的;突出的,杰出的 coupon n.证明持券人有某种权利的卡片,票证,赠券 weekend n.周末 vivid a.鲜艳的;生动的,栩栩如生的 entrance n.入口,门口;进入;入学,入会 fling v.(用力地)扔,抛,丢 joint n.接合处,接头;关节a.联合的,共同的,连接的 detach vt.分开, 分离, 分遣, 派遣(军队) gold n.金,黄金;金币;金黄色 a.金的,金制的 impulse v.推动 n.推动;冲动,刺激 house n.房屋;商业机构;[h-]议院 v.给...房子住 yet ad.还,尚,仍然;已经 conj.然而 ad.甚至 night n.夜间;夜;晚(上) peer n.同辈,同等地位的人;贵族 v.凝视,隐约出现 professor n.教授 physical a.物质的;肉体的,身体的;自然科学的,物理的 soup n.汤 chat v./n.闲谈,聊天 maiden n.少女,处女 a.未婚的,纯洁的,无经验的 largely ad.主要地,基本上;大量地,大规模地 tax n.税(款),负担 v.对…征税,使负重担 court n.法院,法庭;宫廷,朝廷;院子;球场 renovate v.更新,修复 beverage n.(水,酒等之外的)饮料 universal a.普遍的,全体的,通用的;宇宙的,世界的 conspicuous a.显眼的,明显的 personnel n.全体人员,全体职员;人事(部门) housing n.住房,住房供给;(外、阀)壳,防护罩 likely a.很可能的,有希望的 ad.大概,多半 slot n.狭缝;空位vt.放入狭缝中;把…纳入 cloak n.斗蓬,披风;掩饰,幌子vt.掩盖,掩饰 foster vt.养育;收养;怀抱;鼓励 a.收养的 n.养育者 dead a.死的;无生命的;死气沉沉的 ad.完全地 puppet n.木偶,傀儡 abuse vt.滥用;辱骂;诋毁 n.滥用;恶习;弊端 fabricate v.捏造,编造(谎言,借口等);建造,制造 give v.给,授予;供给;献出,让步;捐赠;发表 temper n.脾气;韧度vt.调和,使缓和;使回火 retrospect v./n.回顾,回想,追溯[反]foresee setting n.安置;落山;(固定东西的)柜架底座;环境 invasion n.入侵,侵略,侵犯 food n.食物,粮食,养料 dazzle v.使惊奇,使倾斜;耀(眼) n.耀眼的光 woman n.(pl.)women妇女,成年女子 monarch n.帝王,君主,最高统治者 quartz n.石英 internet n.[the~]国际互联网,因特网 departure n.离开,起程 dollar n.(美国,加拿大等国货币单位)美元,加元 scheme n.计划,方案;阴谋;配置 v.计划,策划;阴谋 route n.路线,路程 accommodate vt.向…提供住处;对...予以照顾性考虑 withdraw v.收回,撤消;缩回,退出;提取(钱) explosive a.爆炸(性)的,爆发(性)的 n.爆炸物,炸药 through prep./ad.穿过;自始至终;由,以 a.直达的 ton n.吨;(pl.)大量,许多 fuss n./v.忙乱,大惊小怪 arrive vi.到达;(时间、事件)到来,发生;达到 basin n.盆,脸盆;内海,盆地 garage n.车库,飞机库;修车厂 its pron.[it的所有格]它的 wretched a.可怜的;悲惨的;肮脏的;恶劣的 deviate v.(from)背离,偏离 translate v.翻译,解释;转化, champion n.冠军,得胜者;拥护者,斗士 reward n.(for)报酬,赏金 v.(for)酬劳;酬谢 helicopter n.直升(飞)机 meantime n.(meanwhile)其间,其时 ad.同时,当时 weekly a.每星期的,一周的ad.每周一次 n.周刊,周报 attribute v.(to)归因于,归属于 n.属性,品质,特征 fleet n.舰队,船队 assumption n.假定,设想;采取;承担;推测;假装 pop a.流行的n.(发出)砰的一声 v.突然出现 brown n./a.褐色(的),棕色(的) jeans n.牛仔裤(又称blue jeans, dungarees等) racial a.种的,种族的 feeling n.感情;心情;知觉;同情 glow v.发热,发光,发红 n.白热 fresh a.新鲜的,无经验的 incidentally ad.附带地,顺便提及 kit n.成套工具,用具包,工具箱 analogue n.类似物;相似体;模拟 camp n.野营,营地;帐篷,阵营 v.设营,宿营 to prep.(表示方向)到;向;(表示间接关系)给. assignment n.分配,指派;(指定的)作业,(分派的)任务 living-room n.起居室 deserve v.应受,值得 cost n.成本,费用,代价 v.价值为,花费 sausage n.香肠,腊肠 production n.生产,产品,作品,(研究)成果,总产量 hardship n.艰难,困苦 pea n.豌豆 ultraviolet a./n.紫外线(的) deep a.深的,深长的;深奥的;强烈的 ad.深入的,迟 splendid a.壮丽的,辉煌的;极好的 documentary a.文献的 n.记录片 loosen v.解开,放松 achieve vt.实现,完成;达到,得到vi.达到预期目的 extinguish v.熄灭;消灭;结束;压制;使黯然失色;偿清 aspire vi.(to,after)渴望,追求,有志于 command n./v.命令,指挥,控制 n.掌握,运用能力 opponent n.对手,反对者,敌手 a.对立的,对抗的 and conj.和,与,而且;那么;接连,又 elaborate v./a.精心制作(的);详细阐述(的) locomotive n.机车,火车头 a.运动的,移动的,运载的 foreigner n.外国人 understand v.懂,理解;获悉,听说;揣测,认为 management n.经营,管理;处理,操纵;管理部门 chocolate n.巧克力(糖),赭色 actor n.男演员;演员,行动者 onion n.洋葱 lucky a.幸运的,侥幸的 without prep.无,没有 n.外面,外部 request v./n.请求,要求 scholar n.学者 scenery n.风景,舞台布景 penalty n.处罚,刑罚,惩罚,罚金 feudal a.封建的;封地的;领地的 curriculum n.(pl.curricula)课程,(学校等的)全部课程 brass n.黄铜,铜器 cabin n.客舱,机舱;小(木)屋 fossil n.化石 pants n.裤子, 短裤 gorgeous a.华丽的;灿烂的;美丽的;宜人的;棒的 prison n.监狱 either ad.也(不) pron.两者之一 a.(两者中)任一的 erect v.树立,建立,使竖立 a.直立的,垂直的 comfort n.舒适,安逸;安慰,慰问 v.安慰,使舒适 write v.写,书写,写字;写作;写信(给),函告 sell v.卖,出售 loud a.大声的,响亮的;吵闹的,喧嚣的 audience n.听众,观众,读者;见面,会见 overhear v.偶然听到,从旁听到 barbecue n.烤肉;烤肉用的台架 vt.炙烤(肉等) commonwealth n.共和国,联邦,共同体 poison n.毒物,毒药 v.放毒,毒害,污染 x-ray n.x射线,x光 anybody pron.(否定句)任何人;(肯定句)随便哪个人 breast n.胸膛,乳房 keyboard n.键盘 vt.用键盘输入(信息) clothing n.服装,被褥 determine v.决心,决定;确定,限定 mutter n.喃喃而语,小声低语;抱怨 v.低声说,抱怨 magic n.魔术,魔(魅)力,巫术 a.有魔力的,魔术的 service n.服务;公共设施;维修保养;行政部门v.维修 steer vt.驾驶,为…操舵;引导vi.驾驶 handwriting n.笔迹,手迹,书法 spacious adj.广阔的,宽敞的 innocent a.(of)清白的,无罪的;无害的;单纯的,无知的 speculate vi.思索;推测vt.投机;思索,推测 pay v.付款,付出代价,给予注意 n.工资,薪金 proficiency n.(in)熟练,精通 summarize v.(summarise)概括,总结 mouth n.口,嘴 descendant n.子孙,后代 match n.火柴;比赛,竞赛;对手,配偶 v.匹配,相称 sight n.视力;望见,瞥见;视域;眼界;情景,奇观 eagle n.鹰 velocity n.速度,速率 derive v.取得;导出;引申;来自;源自;出自 revenue n.财政收入,税收 obsolete a.已废弃的,过时的 hut n.小屋,棚屋 hen n.母鸡 housework n.家务,家事(不可数) stagger vi.摇晃着移动;蹒跚 n.摇晃不稳的动作;蹒跚 compatible a.能和睦相处的,合得来的;兼容的 elite n.<法>[集合名词]精华;精锐;中坚分子 tragic a.悲剧的,悲惨的 country n.国家;农村,乡下 melt v.(使)融化,(使)熔化 colonel n.(陆军)上校 bag n.袋,提包 v.把…装入袋中;猎杀;占有 necessity n.必要性,需要;必然性;(pl.)必需品 only ad.仅仅,只不过 a.唯一的 conj.可是,不过 problem n.问题,疑难问题;思考题,讨论题 bypass n.(by-pass)旁道;vt.绕过 steamer n.汽船,轮船 trick n.诡计,骗局;恶作剧;窍门 vt.欺骗,哄骗 foresee v.预见,预知 aircraft n.飞机,飞船,飞行器 version n.版本;译本,译文;说法 christmas n.圣诞节 before prep.(指时间)在…以前,在..前面,在..之前 creature n.人,动物;生物 kick n./v.踢 weary a.疲倦的;令人厌烦的 v.使疲倦,使厌倦 upright a.垂直的,直立的;正直的,诚实的 ad.竖立着 gesture n.姿势,姿态,手势 v.做手势 wine n.葡萄酒,果酒 just ad.正好地;刚才;只不过 a.公正的,公平的 jar n.罐坛,广口瓶 fountain n.泉水,喷泉,源泉 relish n.美味,味道,调味品,食欲,乐趣 v.喜欢,品味 ancient a.古代的,古老的,古式的 rifle n.步枪 inevitable a.不可避免的,必然发生的 exposure n.暴露,揭露;方向;陈列;遗弃;照射量 counsel v./n.劝告,忠告 n.法律顾问,辩护人 jolly a.欢乐的,高兴的 wrong a.错的 ad.错误地,不正确地 n.错误 v.委屈 book n.书,书籍 vt.订(票,座位,房间等),预定 simulate v.模仿,模拟;假装,冒充 locate v.查出,探出,查找…地点,使…坐落于,位于 oil n.油,石油 v.给…加润滑油;涂油,上油 liquor n.酒;溶液,液剂 underlie vt.位于...之下, 成为...的基础 generation n.产生,发生;一代(人) reduce v.减少,缩小;简化,还原 bureaucracy n.官僚主义,官僚机构;(非民选的)委任官员 occur v.发生,出现;存在;想起,想到 thing n.物,东西;事,事情;所有物;局面,情况 sip v.小口地喝,抿,呷n.一小口的量 adverse a.逆的,相反的;敌对的;不利的;有害的 stalk n.茎,梗vt.悄悄地跟踪vi.高视阔步地走 wardrobe n.衣柜,衣厨;衣服;行头;剧装 home ad.回家,在家 n.家;家乡a.家庭的;家乡的 receive v.收到,接到;遭受,受到;接待,接见 the art.这(那)个;这(那)些(指特定的人或物) restaurant n.餐馆,饭店 town n.市镇;市民;城市商业区,闹市区 will aux./v. 将;会;愿意 n.意志;决心;愿望 retrieve vt.重新得到,取回;挽回,补救;检索 infect vt.传染,感染;影响(思想等) lose v.丢失,迷路,输掉,亏本,失败,走慢,使沉湎于 curious a.好奇的, 求知的, 古怪的, 爱挑剔的 emphasis n.强调,重点 actual a.实际的;现实的,真实的,目前的 productive a.生产(性)的,能产的,多产的 considerate a.考虑周到的,体谅的 economy n.节约;经济 delight n.快乐,高兴 v.(使)高兴,(使)欣喜 set n.一套,一副,装置,接受机v.提出,调整,日落 southwest n./a.西南(的),西南部(的) handy a.手边的,近便的;方便的 movie n.电影,电影院 optimum a.最适宜的 n.最适宜(条件) web n.网,蜘蛛网 literary a.文学上的,文学的;精通文学的,从事写作的 fuse n.保险丝,导火线,引信 v.熔化,熔合 customary a.习惯的,惯例的 suit v.合适,适合;相配,适应 n.一套西服;诉讼 wrap v.裹,缠,卷,包 n.披肩,围巾 malignant a.恶性的,致命的;恶意的,恶毒的 interesting a.有趣的,引人入胜的 dialect n.方言 panda n.熊猫 forest n.森林 consist v.(in)在于,存在于;(of)由…组成,由…构成 edit v.编辑,校订 influence n.(on)影响,感化;势力,权势 v.影响,感化 leg n.腿,腿部;支柱;(旅程的)一段,一站 prince n.王子,亲王 hinder v.(from)阻止,妨碍 a.后面的 vessel n.容器,器皿;船,舰;管,血管 regime n.政体,制度 inhabitant n.居民,住户 forbid v.禁止,不许 general a.一般的,普通的;总的,大体的 n.将军 fulfill v.(fulfil)完成,履行,实践,满足 conspiracy n.阴谋,密谋,共谋 shilling n.先令 nationality n.国籍,民族 bean n.豆;菜豆,蚕豆 thirsty a.口渴的;(for)渴望的,热望的 dynamic a.动力的,电动的;有生气的 with prep.跟…一起;用;具有;关于;因;随着 hover vi.(鸟)盘旋,翱翔,(人)逗留在附近徘徊 amuse vt.向…提供娱乐,使…消遣;引人发笑 thin a.薄的,细的;稀薄的,淡的;瘦的 v.变薄;变稀 poll n.民意测验;(pl.)政治选举 v.获得…选票 enlighten v.启发,启蒙,教导 league n.同盟,联盟;联合会,社团 floor n.地板,(楼房)的层 sale n.出售,上市;贱卖,廉价出售;销售额 case n.箱,盒,容器;情况,事实;病例;案件 project n.方案,工程,项目v.投射,放映;设计,规划 search v./n.(for)搜索,寻找,探查 pig n.猪,猪肉;猪一般的人(指肮脏,贪吃的人) empire n.帝国 moss n.苔,藓,地衣 grass n.草,草地 ready a.(for)准备好的,现成的;甘心的 food n.食物,粮食,养料 rape n./vt.掠夺,蹂躏,强奸 conform vi.(to)遵守,适应;相似,一致,符合 enclosure n.围住,圈起,封入,附件 consistent a.(in)前后一致的;(with)一致,符合 quiver v./n.颤抖,抖动 friction n.磨擦,摩擦力 roast v.烤,炙,烘 mate n.伙伴,同事,同伴,配偶 v. 结伴,配对,交配 atom n.原子;微粒,微量 bone n.骨(骼) model n.样式,型;模范;模型,原型;模特 v.模仿 hospitality n.好客,殷勤,款待 fashionable a.流行的,时髦的 reciprocal a.相互的,往复的,互利的 motivate vt.促动;激励,鼓励,作为…的动机 precaution n.预防,谨慎,警惕 electricity n.电,电流;电学 tolerate vt.容忍,默许;对(药物、毒品等)有耐力 counter n.柜台;计数器 a./ad.相反(的) v.反对,反击 crack n.裂纹,缝隙;破裂声 v.(使)破裂,砸开 mobilize v.(mobilise)动员,赋予可动性 notify v.通知,告知,报告 steel n.钢 bicycle n.(bike)自行车 vi.骑自行车 pigeon n.鸽 release v.释放,解放;发表,发行 n.释放,豁免,放松 height n.高,高度;(常pl.)高地,高处 counterpart n.对应的人(或物) rectangle n.[数]矩形, 长方形 rain n.雨;雨天;下雨 vi.下雨 vt.使大量落下 team n.小队,小组 v.协同工作 payment n.支付,付款额 solar a.太阳的,日光的 programme n.(program)节目,计划,规划,程序 v.编程序 restore v.恢复,使回复;归还,交还;修复,重建 rip v.撕,剥,劈,锯,裂开,撕裂 n.裂口,裂缝 renaissance n.[the r-]文艺复兴(时期);新生,复兴 gap n.缺口;差距;空白;缺乏 stitch n.一针;(因跑步引起的)肋部剧痛 v.缝(合) insulate vt.隔离,孤立;使绝缘,使绝热 helmet n.头盔,钢盔 ladder n.梯子,阶梯 electrician n.电学家,电工 northeast n.东北 a.东北方的 ad.向东北,在东北 inspect vt.检查,调查,视察 beat n.敲打;(心脏等)跳动 v.打败;(心脏等)跳动 gay a.快乐的,愉快的,色彩鲜艳的 n.同性恋 episode n.一段情节;片断;(连续剧的)一集 subscribe vi.(to)订阅,订购;同意vt.捐助,赞助 human a.人的,人类的 n.人 tram n.有轨电车 wing n.翅,翅膀;翼,机翼;派别 vt.装以翼 mouse n.(pl.mice)鼠,耗子 persuasion n.说服,说服力 shower n.阵雨;沐浴;(一)阵/大批v.下阵雨,倾注 physiological a.生理学的, 生理学上的 violate vt.违背;冒犯;妨碍;侵犯;亵渎(圣物) art n.艺术,美术;技术,技艺;文科,人文科学 queen n.女王,皇后,王后 workshop n.车间,工场,修理厂;研讨会,讲习班 plantation n.种植园 probe n.探针,探测器 v.(以探针等)探查,穿刺,查究 trait n.特征,特点,特性 shopkeeper n.店主 extravagant a.奢侈的;过分的;(言行等)放肆的 corrode v.(受)腐蚀,侵蚀 nor conj./ad.也不,也没有 colony n.殖民地;侨民;聚居区;(动植物的)群体 medical a.医学的,医疗的,医药的;内科的 judge n.法官;裁判员;鉴定人 vt.审判;评论,裁判 safeguard v.维护,保护,捍卫 n.安全装置,安全措施 spectacular a.壮观的,引人注目的 n.壮观的演出 squirrel n.松鼠 laughter n.笑,笑声 amid prep.在…中间,在…之中,被…围绕 seat n.座位,底座;所在地,场所 v.使坐下 hypocrisy n.伪善,虚伪 prepare v.准备,预备 snatch n./v.攫取,抢夺 should aux.v.应该;万一;可能,该;就;竟然会 leather n.皮革,皮革制品 orderly a.整齐的,有秩序的,有条理的 n.勤务兵 trace n.痕迹,踪迹;极少量 v.描绘;跟踪,追踪 dense a.浓厚的,密集的,稠密的 front a.前面的,前部的 n.正面;前线,战线 v.面对 faithful a.守信的,忠实的,如实的,可靠的 multitude n.众多,大量 insist vi.(on)坚持要求,坚决主张,坚持 associate vt.联想;交往;联合;n.伙伴;a.联合的 journalist n.记者,新闻工作者 significant a.有意义的;重大的,重要的 rap n.叩击,轻拍,斥责 v.敲,拍,打,斥责,使着迷 medal n.奖章,勋章,纪念章 somewhat pron.&ad.一点儿,几分 drastic a.激烈的,严厉的;(药性等)猛烈的 swift a./ad.快的(地);敏捷的(地)a.立刻的n.雨燕 fix v.(使)固定;修理;安装;决定;注视 n.困境 suspend v.悬(浮),挂;暂停,取消;推迟 flare v./n.闪耀,闪烁 speak v.说话,讲话;演说,发言;(in)说某种语言 zoom vi.(飞机)陡升 n.陡升;嗡嗡声 excursion n.短途旅行,游览;离题;[物理]偏移,漂移 glide n./v.溜,滑行;(时间)消逝 empirical a.凭经验(或观察)的,经验主义的 scold v.责骂,训斥 plight n.情况,状态,困境,盟誓(婚姻) v.保证,约定 activate vt.启动,激活;驱动,驱使;使开始起作用 hierarchy n.等级制度;统治集团,领导层 technician n.技术员,技师,技工 rush v.(使)冲;奔n.冲,急速行进 a.(交通)繁忙的 recite v.背诵,朗诵 busy a.忙,忙碌的;热闹的,繁忙的;(电话)占线 celebrity n.名人,名流;著名,名声,名望 penetrate v.穿过,渗入,看穿 future n.将来,未来;前途,前景 a.将来的,未来的 possibility n.可能,可能性;可能的事,希望 discourage v.使泄气,使失去信心 execute v.实行;实施;执行;完成;履行;处死 video n.电视,视频;录像 a.电视的,视频的;录像的 carpet n.地毯 betray v.背叛,出卖;暴露,流露,泄露 pilgrim n.(在国外)旅游者;朝圣者,最初的移民 require v.需要;(of)要求,命令 timid a.胆怯的,怯懦的 distribute v.分发;分配;分布;配(电);(over)散布 cultivate v.耕作,栽培,养殖;培养,教养,磨炼 robe n.长袍,上衣 boil v.(使)沸腾,煮(沸) infectious a.传染的,传染性的,有感染力的 herself pron.[反身代词]她自己;她亲自,她本人 mode n.方式,式样 passion n.热情,激情,爱好;激怒;强烈感情 linear a.线的,直线的,线状的;长度的;线性的 regardless a./ad.不管…的,不顾…的,不注意的 deceive v.欺骗,蒙蔽 slogan n.标语,口号 noisy a.吵闹的,喧闹的 parcel n.包裹,邮包,部分 v.打包,捆扎,分配 tough a.坚韧的,棘手的;强健的,吃苦耐劳的;粗暴的 declare v.宣布,宣告,声明;断言,宣称 iron n.铁,铁制品,烙铁,熨斗 v.熨(衣),熨平 unite vi.联合,团结;统一,合并vt.使联合 classmate (名)同班同学 fringe n.边缘;(窗帘)缘饰;额前垂发 vt.饰…的边 apply vi.(以书面形式)申请;请求 vt.应用;实施 alternative n.二选一;供选择的东西;取舍 a.二选一的 oral a.口头的 church n.教堂;教会,教派;(宗教的)礼拜仪式 passport n.护照,达到某种目的的手段 find v.(found,found)找到;发现;发觉;感到 vague a.不明确的,含糊的,暧昧的 submit v.(to)使服从,屈服;(to)呈送,提交 patrol v.巡逻,巡查 n.巡逻,巡查;巡逻队 directly ad.直接地,径直地;马上,立即 metre n.(meter)米,公尺;仪表,计量器 hot a.(炎)热的;辣的;急躁的;激动的;热衷的 setback n.挫折;失效;复发;倒退 selection n.选择,挑选;选集,精选物 december n.十二月 transmit vt.传输/导;转送;发射 vi.发射信号;发报 forum n.论坛,讨论会 costly a.昂贵的,价值高的,豪华的 courtesy n.谦恭有礼;有礼貌的举止(或言词) promising a.有希望的,有前途的 liner n.班机,定期轮船,邮船 skate v.溜冰,滑冰 n.冰鞋 burn v.燃烧,烧着;烧毁;灼伤 n.烧伤,灼伤 nutrition n.营养,营养学 shark n.鲨鱼 normal a.正常的,普通的;正规的,标准的 excessive a.过多的;过分的;额外 coincidence n.巧合;同时发生,共同存在;符合,一致 doze v./n.瞌睡;假寐 become vi.变成,开始变得vt.适合,同…相称 construction n.建造,构造;建筑物,结构;释义,解释 hence ad.从此,今后;因此 perhaps ad.也许,大概,恐怕 hose n.水龙带,软管 v.用软管(淋浇,冲洗) wheel n.轮,车轮 author n.作者,作家,著作人;创始人,发起人 your pron.[you的所有格]你的,你们的 luggage n.行李,皮箱 solid a.固体的;结实的,稳固的,可靠的 n.固体 intense a.强烈的,剧烈的;热烈的,热情的 foreign a.外国的,(to)无关的;外来的;异质的 spectator n.观众,旁观者 numb a.麻木的,失去感觉的 v.使麻木 spare a.多余的,备用的 v.节约,节省;抽出(时间) chemical a.化学的 n.(pl.)化学制品,化学药品 plug n.塞子,插头 v.堵,塞,插上,插栓 tradition n.传统; 惯例; 传说 equation n.(数学)等式,方程式;(with)相等;均衡 lapse n.失误,流逝,丧失,下降 v.失效,偏离,流逝 submerge v.沉没,淹没;潜入 march v.(使)行军,(使)行进 n.行军,行程 tremendous a.巨大的,极大的 veil n.面纱,遮蔽物 v.用面纱掩盖,掩饰 noon n.中午,正午 modify v.更改,修改,修饰 sorry a.对不起,抱歉的;难过,悔恨的;使人伤心 stiff a.硬的,僵直的;拘谨的;呆板的;艰难的 foolish a.愚笨的,愚蠢的 briefcase n.手提箱,公事皮包 patent a.专利的,特许的n.专利(权、品)v.批准专利 friend n.朋友 shy a.怕羞的,腼腆的;胆怯的vi.惊退,畏缩 waken v.醒,弄醒,唤醒 destructive a.破坏性 peel v.削皮,剥皮 n.果皮 museum n.博物馆,展览馆 statesman n.政治家,国务活动家 hat n.帽子(一般指有边的帽子) recent a.新近的,近来的 restless a.得不到休息的;不平静的;坐立不安的 bind v.捆,绑,包括,束缚 tick n.滴答声;勾号 v.滴答响;打勾号于 mend v.修理,缝补;改正,改进 distort v.弄歪(嘴脸等);扭曲;歪曲(真理、事实等) envisage v.想象,设想,展望,正视 ore n.矿石,矿砂 toilet n.厕所,盥洗室 lawn n.草地,草坪 gut n.[pl.]胆量;内脏a.本能的vt.取出内脏 county n.(英国)郡,(美国)县 change n.改变,变化;零钱 v.更换,调换,交换;改变 square n.正方形;广场a.正方形的v.使成方形 sense n.感官;感觉;判断力;意义 v.觉得,意识到 highland n. 高地,高原 marine a.海的,海生的;船舶的,航海的 redundant a.多余的,过剩的;(食物)丰富的;被解雇的 somebody pron.某人,有人 n.重要人物 god n.上帝(小写god泛指所有的“神,神像”) neighbor n.(neighbour)邻居 linger v.逗留,徘徊,拖延,留恋,浪费光阴,苟延残喘 compel v.强迫,迫使 circus n.马戏团,杂技团;马戏场,杂技场 bend v.(使)弯曲;屈从,屈服 n.弯曲(处),曲折处 return v./n.返回,回来;归还,送还;回答 dialog n.(dialogue)对话,对白 recommend v.推荐,介绍;劝告,建议 per prep.每;经,由 supreme a.极度的,最重要的;至高的,最高的 glamor n.(glamour)魅力;魔法 vt.迷惑 henceforth ad.今后 appearance n.出现,露面;外表;(在会议等)作短暂露面 poisonous a.有毒的,恶意的,恶毒的,道德败坏的 judgement n.(judgment)审判,判决;判断(力);看法,意见 tiny a.极小的,微小的 alive a.活着的;存在的;活跃的;(to)敏感的 government n.政府,内阁;管理,支配;政治,政体 define v.给…下定义;阐述;阐释;限定,规定 altitude n.高度,海拔;[pl.]高处,高地 do aux.v. vt.做,干,办,从事;引起 vi.行动 inferior a.下等的,下级的;劣等的,差的 n.下级,晚辈 cement n.水泥;胶泥,胶接剂 v.胶合;巩固,加强 conservation n.保存,保护,保守;守恒,不灭 mechanical a.机械的,由机构制成的;机械似的,呆板的 taxi n.出租汽车v.[指飞机](使)滑行 upstairs ad.向楼上;在楼上;上楼 ad.楼上的 prior a.优先的,在前的;(to)在…之前 discharge v./n.卸货,排出;发射,放(电);遣散,解雇 feast n.节日;宴会 oppose v.反对,使对立,使对抗,使相对 namely ad.即,也就是 mat n.席子,垫子 severe a.严厉的;剧烈的,严重的,严峻的,艰难的 owner n.物主,所有者 mud n.泥,泥浆 v.弄脏,使沾污泥 dove n.鸽子 salary n.薪金,薪水 error n.错误,过失 cloth n.(一块)布,织物,衣料 talent n.才能,天资;人才 harbor n.(harbour)海港;避难所 v.隐匿,窝藏 pink n.粉红色 a.粉红色的 closet n.(壁)橱a.私下的vt.把…引进密室会谈 toxic a.有毒的;中毒的 ambiguous a.引起歧义的,模棱两可的,含糊不清的 free a.自由的;免费的;免税的;空闲的 vt.释放 pledge n.誓约;保证 v.发誓;保证 circular a.圆(形)的,环形的;循环的 n.传单,通报 till prep.直到,直到…为止,与until意思相同 surround vt.包围,环绕 n.环绕物 score n.得分,分数;二十 v.得(分),记(…的)分数 monetary a.金融的,货币的 refine v.精炼,精制,提纯;使文雅,使高尚 independent a.(of)独立的,自主的 plural a.复数的 n.复数 wave n.波浪;(挥手)示意;飘扬 v.(挥手)示意,致意 simplicity n.简单,简易;朴素;直率,单纯 visit n.访问,参观 v.访问,参观;视察;降临;闲谈 headquarters n.司令部,指挥部;总部,总局 coalition n.结合体,同盟;结合,联合 worry v.烦恼;(about)对…感到烦恼 n.烦恼,焦虑 mould n.(mold)模子,铸型 v.浇铸,造型,塑造 qualify v.(使)具有资格,证明合格;限制,限定;修饰 dish n.碟子,盘子,菜肴 slide v.(使)滑动 n.滑坡,滑道;滑,滑动;幻灯片 merit n.优点,价值,功绩 v.值得,应得 plea n.(法律)抗辩;请求,恳求,托词,口实 margin n.页边空白;边缘;余地;幅度 behavior n.(behaviour)行为,举止;(机器等)运转情况 pit n.坑,陷阱;煤矿,矿井 sake n.缘故,理由 eccentric a.古怪的,怪癖的,异乎寻常的n.古怪的人 sew v.缝,缝纫 molecule n.分子 behalf n.利益 hedge n.篱笆,树篱,障碍物 v.用树篱围住 inform v.(of,about)通知,告诉,报告;告发,告密 gloomy a.阴暗的,阴沉的,令人沮丧的,阴郁的 hasty a.匆忙的,仓促的;草率的 occasion n.场合,时节,时刻;时机,机会 emigrate v.(反)immigrate;(to,from)自本国移居他 groan v./n.呻吟 theirs pron.[they的物主代词]他(她、它)们的 universe n.宇宙,万物 virtual a.实际上的,事实上的 catholic a.天主教的 n.天主教徒 maid n.少女,处女,女仆 fry v.油煎,油炸 dragon n.龙 glitter n.光辉,灿烂 v.闪闪发光;闪耀 fridge n.(refrigerator的略语)冰箱 poetry n.诗歌,诗集 dirt n.污物,污垢 plunge v.(into)(使)投入,(使)插进,陷入;猛冲 tobacco n.烟草,烟叶 triangle n.三角(形) cater vi.(for/to)满足,迎合;(for)提供饮食及服务 complain v.(about,of)抱怨;申诉 false a.谬误的,虚伪的,伪造的,假的 meeting n.会议,集合,汇合,会见,接见,汇合点 blue a.蓝色的;青灰色的;沮丧的,阴郁的 n.蓝色 confusion n.困惑,糊涂;混淆;混乱,骚乱 impression n.印象,感想;盖印,压痕 observation n.观察,观测,监视;(pl.)观察资料;观察力 consult v.请教,向...咨询,找...商量;查阅,查看 pretext n.借口,托词 whose pron.谁的;哪(个)人的,那些(人)的 fall v.跌倒;下降;减弱;坠落;变成,陷于 n.秋季 peace n.和平;平静,安宁 undertake v.承担,担任;许诺,保证;着手,从事 clothes n.衣服(虽为复数,亦不可数) elsewhere ad.在别处,向别处 strain v.拉紧;紧张;扭伤;竭尽全力 n.拉紧;负担 intelligent a.聪明的,明智的,理智的 hysterical a.情绪异常激动的,歇斯底里的 diamond n.金钢石,钻石;菱形 sponge n.海绵 issue n.问题,争端,发行(物),期号 vt.发行,流出 join v.参加,加入;联合,连接;和…在一起 fright n.恐怖 castle n.城堡;(国际象棋中的)车 remainder n.剩余物,剩下的;余数,余项 synthesis n.(pl.syntheses)综合,合成 symposium n.讨论会,专题报告会;专题论文集 application n.申请,请求,申请书;应用,实施,实用性 last a.最后的,刚过去的 ad.最后 n.最后 v.持续 choose v.选择,挑选;甘愿 scientific a.科学上的 consensus n.(意见等的)一致,一致同意,共识 pose n.姿势,姿态 v.造成,提出,摆姿势,佯装 predict v.预言,预测,预告 global a.球形的;全球的,全世界的;全面的 bad a.坏的;低劣的;不舒服的;腐败的;严重的 assist vt.协助,帮助,促进 vi.帮忙,参加 thunder n.雷(声);轰隆声 v.打雷;大声说,吼叫 bet v.赌,打赌 n.打赌,赌注 ring n.戒指;环;铃声;(打)电话 v.按(铃),敲(钟) bolt n.螺栓,(门,窗的)插销 v.闩(门),关窗,拴住 friday n.星期五 order n.命令;次序;整齐;定货单;等级 v.定制,订购 refusal n.拒绝,回绝 professional a.职业的,专门的 n.自由职业者,专业人员 disappoint vt.失望;(希望等)破灭,挫败(计划等) mobile a.可动的,活动的,运动的 react v.反应,起作用;(against)反对,起反作用 underground a.地下的;秘密的 n.地铁 ad.在地下 compare vt.(to,with)比较;(to)把…比作vi.相比 graduate n.大学毕业生,研究生 v.大学毕业a.毕了业的 wet a.湿的,潮湿的;有雨的,多雨的 v.弄湿,沾湿 attractive a.吸引人的,引人注意的;漂亮的,迷人的 applause n.鼓掌;喝彩;夸奖,赞扬 flower n.花;精华,精粹,精英;盛时 vi.开花 chimney n.烟囱 bachelor n.单身汉;(亦作b-)学士(学位) dilemma n.(进退两难的)窘境,困境 lubricate v.润滑,加润滑油,行贿,收买 plumber n.(装修水管的)管子工 gradual a.逐渐的,逐步的 anniversary n.周年,周年纪念日 exemplify v.举例证明;示范;作...的范例[榜样] tremble n.战栗,颤抖 v.发抖,颤抖;摇动;焦虑 storm n.暴风雨,暴风雪;激动,爆发 v.猛攻,直捣 gum n.树胶;口香糖 system n.系统,体系;制度;方法,方式,步聚 sharp a.锋利的;轮廓分明的;急转的ad.(指时刻)正 feather n.羽毛 hound n.猎狗;卑鄙的人 vt.用猎狗追,追逐 eat vt.吃,喝 vi.吃饭,吃东西 witch n.女巫, 巫婆,巫师 bowel n.肠;[pl.]内部,深处 examine v.检查,调查;对…进行考试 paragraph n.段,节;小新闻,短评 ceremony n.典礼,仪式;礼节,礼仪 material n.材料,原料,资料a.物质的,肉体的,实质性的 worst a./ad.最坏(的),最差(的) child n.( [pl.] children)小孩,儿童,儿女 improvement n.改进,进步,增进;改进措施 treat v.对待;治疗;论述;款待,请客 n.款待,请客 criticize v.(criticise)批评,评论 communism n.共产主义 log n.原木,圆木;航海日志 visa n.(护照等的)签证;维萨信用卡 vt.签证 rabbit n.兔子 balloon n.气球,飞船;a.气球状的 v.乘坐气球;膨胀 subtract v. (from)减(去) teacher n.教师(员),老(导)师 coherent a.一致的,协调的;(话语等)条理清楚的 client n.律师等的当事人,委托人;商店的顾客 thrift a.节约,节俭 cabinet n.内阁,内阁会议;(带玻璃门存物品的)橱柜 forever adv.(for ever)永远;总是 praise v.赞扬,歌颂;表扬 n.称赞,赞美;赞美的话 loaf n.一个面包 painter n.漆工,画家 keep v.保持,保存,遵守,经营,看守,拘留,维持 prolong v.拉长,延长,拖延 calcium n.钙(化学符号ca) aim n.目的;瞄准 vi.(at)目的在于 vt.把…瞄准 plentiful a.富裕的,丰富的 lie vi.躺,平放;处于;位于 v.说谎 n.谎话 sigh n.叹息,叹息声 v.叹息,叹气 saturate vt.使充满,使饱和 else ad.其它,另外,别的;[与or连用]否则 sing v.唱,演唱;鸡叫 morning n.早晨,上午 laundry n.洗衣房(店);待洗衣物,所洗衣物 entry n.进入,入口;通道;记载,条目 interview v./n.接见,会见;采访;面试 throw vt.扔;使突然陷入;使困惑n.投掷(距离) energy n.活力,精力;能,能量 racket n.球拍 donate vt.损赠(金钱等);赠予 shed v.流出;发散,散发,脱落,脱去 n.棚,小屋 discover v.发现,显示 limb n.肢,翼,大树枝 fair a.公平的,合理的;相当的 n.集市,交易会 cafe n.咖啡馆,(小)餐馆 independence n.独立,自主 extension n.延长;扩大;范围;大小;尺寸;电话分机 facilitate v.使变得(更)容易;使便利;推动;帮助;处进 healthy a.健康的,健壮的;有益健康的,卫生的 believe vt.相信,认为 vi.相信,信任,信奉 someone pron.某人(=somebody) beware v.当心,谨防 precision n.精确,精确度 official n.官员,行政官员 a.官方的,官方的,正式的 feminine a.女性的;娇柔的 divorce v./n.离婚,分离 almost adv.几乎,差不多 exact a.确切的,正确的,精确的 rotate v.(使)旋转 projector n.放映机,幻灯机,投影仪 opt vi.抉择,选择 worthwhile a.值得(做)的 ultimate a.最后的,最终的;根本的 chalk n.粉笔,白垩 console n.控制台,仪表板;落地柜 vt.安慰,慰问 gramme n.(gram)克 resume n.个人简历 v.再继续,重新开始;再用;恢复 transcend vt.超出,超越(经验、知识、能力的范围等) fish n.(pl.fish(es))鱼;鱼肉 v.捕鱼;钓鱼 swell n./v.肿胀;膨胀;增大;增加; field n.田野;运动场;(电或磁)场;领域,范围 cite v.引用,引证,举(例) another a.另一个,又,再 pron.另一个,类似的一个 tolerance n.宽容;容忍,忍受;耐药力;公差 humid a.湿的,湿气重的 irrespective a.不顾的,不考虑的,无关的 block n.大块木(石)料;街区;障碍物 v.阻塞,拦阻 paradox n.似非而是的话,自相矛盾的话,反论 ask vt.问,询问;请求,要求;邀请,约请 daytime n.白天,日间 brandy n.白兰地酒 clash v./n.碰撞 n.碰撞声 tomato n.西红柿 broom n.扫帚 handful n.一把;少数;一小撮 trap n.陷阱,圈套 vt.诱捕;使中圈套 vi.设圈套 though ad.可是,然而,不过 conj.尽管,虽然 opposite a.对面的,相对的,相反的 n.对立面 print n.印刷,印刷品,字体 v.印刷,出版;洗印 lack n./v.缺乏,不足 suck v.&n.吸,舐;吸收(取) clumsy a.笨拙的,愚笨的 doom n.厄运,劫数 v.注定,命定 sometime ad.将来(或过去)某个时候a.以前的 anyone pron.(用于疑问句,否定式)任何人 nitrogen n.[化]氮 name n.名字(称/声/义) vt.给…取名;列举;提名 surface n.表面;外表 a.表面的,肤浅的 summary n.摘要,概要 a.概括的,简略的 dirty a.弄脏的;下流的 v.弄脏,玷污 hip n.臀部,髋;屋脊 statue n.塑像,雕像 enter vt.进入;参加,加入;写入 vi.进去,进来 rival n.竞争者,对手 v.竞争,对抗 a.竞争的 hair n.毛发,头发;绒毛,毛状物 egg n.蛋; 卵; 卵形物 month n.月,月份 sneak vi.偷偷地走,溜vt.偷偷地做(或拿、吃) passenger n.乘客,旅客 articulate a.善于表达的;有关节相连的 v.清楚地讲话 wonderful a.惊人的,奇妙的;极好的 society n.社会;社团,协会,社;社交界,上流社会 kite n.风筝 intelligible a.可理解的,明白易懂的,清楚的 translate v.翻译,解释;转化, so ad.那么;非常;也;不错 conj.因此;以便 cheap a.便宜的;低劣的,不值钱的 pile n.堆,大量,大数目 v.(up)堆,叠,堆积 reply v./n.(to)回答,答复,以…作答 possession n.持有,拥有;所有权;所有物;(pl.)财产,财富 bureau n.署,局,司,处 pleasant a.令人愉快的 vt.使高兴 vi.满意;喜欢 essence n.本质,实质 later ad.后来,过后 corridor n.走廊,通路 procedure n.程序,手续,步骤 hardware n.五金,金属制品;硬件 calendar n.日历,月历 ice n.冰;冰冻甜食 vt.冰冻,使成冰 cattle n.牛;牲口,家畜 furious a.狂怒的,狂暴的,猛烈的 operator n.操作人员,(电话)接线员 honorable a.(honourable)可敬的;荣誉的,光荣的 superb a.极好的,杰出的;华丽的; fountain n.泉水,喷泉,源泉 geometry n.几何(学) jazz n.爵士乐 zigzag n./a.之字形(的) v.使曲折,曲折盘旋 technique n.技巧,手艺,技能;技术,工艺 eye n.眼(睛);视力;眼力;监督vt.看,审视 natural a.正常的;自然界的,天然的,天赋的,固有的 must aux.&v.必须;很可能;一定要 n.必须做的事 of prep.…的;在…之中;用…制的;关于…的 frequent a.时常发生的,频繁的 inhabit vt.居住于,存在于;栖息于 piston n.活塞 earthquake n.地震 portrait n.肖像,画像 outstanding a.突出的,显著的,杰出的 vein n.血管;静脉;叶脉;纹理;情绪 vt.使成脉络 display v./n.陈列,展览,显示(器) fourteen num.十四,十四个 kilometre n.(kilometer) 公里,千米(略作km) refresh v.(使)精神振作,(使)精力恢复 feed v.(on,with)喂养,饲养;(with)向…供给 antenna n.(无线电或电视的)天线 notice n.通知,通告,布告;注意,认识v.注意到,注意 operational a.操作的,运转的,起作用的,经营的 paper n.纸;纸制品;报纸;(pl)文件;试卷;论文 porter n.守门人,门房,行李搬运工,服务员 highway n.公路,大路 rehearsal n.排练,排演,演习,预演,试演 smart a.漂亮的;聪明的;巧妙的 v.剧痛,刺疼 anchor n./v.锚;危难时可依靠的人或物;用锚泊船 vest n.背心,马甲;汗衫,内衣 there ad.在那儿;往那儿;[作引导词表示"存在"] not ad.不,不是,不会;没有 division n.分,分割;部门,科,处;除法;分界线 rotary a.旋转的 spectacle n.(pl.)眼镜;场面,景象;奇观,壮观 faculty n.才能;学院,系;(学院或系的)全体教学人员 able a.有(能力、时间、知识等)做某事,有本事的 inn n.小旅馆,客栈 signature n.签名,署名,签字 notorious a.臭名昭著的,声名狼藉的 absorb vt.吸收(水、光、蒸汽等);使全神贯注 sister n.姐,妹;护士长;修女,女教士 morality n.道德,美德 social a.社会的;交际的 dictionary n.词典,字典 press v.压;压榨;紧迫,催促 n.报刊,通讯社;压榨机 secret a.秘密的,机密的 n.秘密 cathedral n.大教堂 plaster n.灰泥;熟石膏;膏药 crust n.外皮,壳;地壳 deaf a.聋的;不愿听的 assurance n.保证,担保;确信,断言;信心,信念 bronze n.青铜;青铜色,古铜色;青铜制品,铜牌 burst v.爆裂,炸破;突然发生 n.突然破裂,爆发 mankind n.人类 pasture n.牧草地,牧场 alongside ad.在旁边 prep.和...在一起;在...旁边 forget v.忘记,遗忘 sleeve n.袖子 surrender vi.投降,屈服 vt.放弃,交出 n.投降,认输 batch n.一批,一组,一群 salesman n.售货员,推销员 knot n.(绳)结;(树)节;节(=海里/小时) v.打结 chart n.图表;航海图;航行图 vt.绘图表,制图表 century n.世纪,(一)百年 element n.元素;要素;成分;元件;自然环境 sir n.先生,长官;[s -用于姓名前]…爵士 tension n.(紧张)状态;拉(绷)紧;张力,拉力 combination n.结合,联合;化合;团体;组合数码 edge n.边,棱;刀口,刃 v.侧身移动,挤进 incentive n.刺激;动力;鼓励;诱因;动机 tourist n.旅游者,观光客;巡回比赛的运动员 classic n.(pl.)杰作,名著 a.第一流的,不朽的 eligible a.符合条件的;(尤指婚姻等)合适(意)的 chair n.椅子;(会议的)主席 vt.当…的主席,主持 solitary a.(好)孤独的;偏僻的;单一的,唯一的 third num.第三(个),三分之一(的) green a.绿色的;生的;未成熟的 n.绿色;蔬菜;植物 porch n.门廊,入口处 fascinate v.迷住,强烈吸引 venture v.冒险,拼;大胆表示 n.冒险事业,拼,闯 preceding a.在前的,在先的 elastic a.弹性的 n.松紧带,橡皮圈 remain v.剩下,余留;留待,尚须;仍然是,依旧是 facility n.灵巧,熟练;(pl.)设备,设施,便利条件 annoy vt.使恼怒,使生气;打扰 vi.招人讨厌 limited a.有限的,被限制的 mushroom n.蘑菇 vt.迅速生长,迅速增加,采蘑菇 open n.公开,户外 a.开的,开放的 v.开 sophisticated a.尖端的,复杂的,先进的;老练的,老于世故的 destiny n.命运;天数,天命 certainly ad.一定,必定,无疑;当然,行 gulf n.海湾 doctorate n.博士学位;博士头衔 street n.街,街道;行车道 fume n.(浓烈或难闻的)烟,气,汽 tedious a.乏味的,单调的,冗长的 initiate vt.开始,创始,发动;启蒙,使入门;引入 heighten v.提高,升高 bundle n.捆,包,束 likelihood n.可能性 opera n.歌剧 hand n.手,人手,雇员;专门业人员;指针 v.交 heel n.脚后跟,踵,鞋跟 peninsula n.半岛 summit n.顶,最高点;颠峰,高峰;最高级会议 might aux.v.可能,也许 n.力量,威力,权力 plague n.瘟疫,灾害,麻烦,苦恼 vt.折磨,使苦恼 blackmail n.讹诈,敲诈,勒索;胁迫,恫吓 argument n.争论(吵),辩论;理由;论证 banana n.香蕉 testify v.作证,证明;(to)表明,说明 manner n.方式;举止;(pl.)风度,礼貌;规矩;风俗 basket n.筐,篮,篓 echo v./n.回声,反响,共鸣 administration n.经营,管理;行政,行政机关,管理部门 toast n.烤面包,吐司;祝酒(词)v.烘,烤;(向…)祝酒 fragrant a.香的;芬芳的 pickup n.拾起,获得 grape n.葡萄 interference n.(in)干涉,干预;(with)妨碍,打扰 specimen n.标本,样本 foul a.污秽的;邪恶的 v.弄脏;妨害;犯规 n.犯规 forward ad.(also forwards)向前 a.向前的 v.转交 artery n.动脉;干线,要道 phase n.阶段,状态,时期;相,相位 exceptional a.例外的,异常的 agency n.代理(处);代办处;[美](政府的)机关,厅 my pron.(i的所有格)我的 also ad.而且(也),此外(还);同样地 may n.五月 shatter n.碎片;粉碎 v.粉碎;使疲惫;使震骇 planet n.行星 hamper v.妨碍,阻碍,牵制 expensive a.花费的,昂贵的 helpful a.(to)有帮助的,有益的,有用的 suppose v.料想,猜想;假定;conj.假使...结果会怎样 lofty a.崇高的,高尚的;高傲的;极高的 framework n.构架;框架;结构;组织;机构 vision n.视力,视觉;远见;洞察力;幻想,幻影;想象力 wake v.醒来,唤醒;使觉醒,激发,引起 reference n.提及,涉及;参考,参考书目;证明书(人) invest vt.投资,投入(精力、时间等) profit n.利润,收益 v.(by,from)得利,获益;有利于 essential a.本质的,基本的;净化的 n.本质;要素 damp n.潮湿 a.潮湿的 vt.使潮湿;使衰减 shutter n.百叶窗;(照相机)快门;关闭装置 bibliography n.(有关某一专题的)书目;参考书目 tram n.有轨电车 apartment n.[英]房间,套间;[美]公寓 drink v.(drank,drunk)喝,饮 n.饮料;喝酒 engage v.(in)从事,着手;约定;使订婚;保证;雇用 hell n.地狱,阴间;苦境,极大痛苦 prestige n.声望,威望,威信 transport v.运输,运送,搬运n.运输;运输系统,运载工具 translation n.翻译;译文,译本 pension n.养老金,年金 example n.例子,实例;模范,榜样 combine v.联合;结合;化合 n.集团;联合企业 dew n.露水 beloved a./n.受爱戴的,敬爱的;爱人,被心爱的人 synthetic a.合成的,人造的;综合的 difficult a.困难的,艰难的 prisoner n.囚犯 tear n.(pl.)眼泪 vt.撕裂;使…分裂 vi.破裂 shallow a.浅的,浅薄的 n.浅滩,浅处 incur v.招致,惹起,遭受 bush n.灌木(丛) knife n.刀,餐刀 v.用刀切,用匕首刺 wander v.漫步,徘徊;迷路,迷失方向;离题 environment n.环境,外界 club n.俱乐部,夜总会;社团;棍棒,球棒 hard a.坚硬的;结实的;困难的;难忍的;严厉的 spectrum n.谱,光谱,频谱;范围,幅度,系列 ebb vi.衰退,减退 n.处于低潮,处于衰退状态 supersonic a.超音速的,超声波的 n.超声波,超声频 look vi./n.看,注视 v.好像,显得 n.外表,脸色 red a.红的,红色的 n.红色;红色颜料 refuse v.拒绝,谢绝 n.废物,垃圾 machinery n.(总称)机器,机械 analogy n.类似,相似,类比,类推 bewilder v.使迷惑,难住 bulb n.灯泡,球状物 variable a.易变的;可变的;变量的 n.变量 hit v.打,击;碰撞 n.击中;成功而风行一时的事物 sand n.沙;(pl.)沙滩,沙地 violet n.紫罗兰,紫色 a.紫色的 tan n./a.(皮肤因日晒而成)棕褐色(的) vt.晒黑 gross a.总的,毛(重)的;粗鲁的,粗俗的 n.总额 permit v.许可,允许 n.许可证,执照 govern v.统治,管理;决定,支配 table n.桌子;餐桌;工作台;表格 vt.搁置;提交讨论 beer n.啤酒 steal v.偷,窃取;偷偷地做,巧取 squeeze v.压榨,挤 n.榨取,勒索 belong v.(to)属于,附属,隶属;应归入(类别,范畴等) grown-up a.成长的,成熟的,成人的 n.成年人 tank n.罐,槽,箱;坦克 vt.储于槽中 bench n.长凳,条凳;(工作)台,座 deceit n.欺骗,欺骗行为 swallow n.燕子;吞咽vt.吞,咽;轻信;忍受;vi.咽口水 stove n.炉子,火炉 rake n.耙子,耙机 v.耙;搜索,探索 area n.面积;地区,地域;领域,范围 flush n.脸红v.发红;奔流a.洋溢的;富裕的;齐平的 abrupt a.突然的,出其不意的;(行为等)粗鲁无礼的 grand a.盛大的,豪华的;重大的,主要的 requirement n.(for)需要,需要的东西,要求 inquiry n.(enquiry)询问,打听,调查 mob n.乌合之众(尤指暴力者) vi.围攻,聚众闹事 city n.城市;都市;市 owe v.欠(债等),应向…付出,归功于,得感谢 clergy n.[总称]牧师,神职人员 president n.总统,校长,会长,主席 garden n.(菜,花)园;公园 post v.贴出;公告;投寄 n.(支)柱;邮政,邮寄;职位 hound n.猎狗;卑鄙的人 vt.用猎狗追,追逐 shoe n.鞋 lion n.狮子 dedicate vt.奉献;献身于 treaty n.条约,协议,协商 resign v.辞去,辞职,使听从(于),使顺从 kindergarten n.幼儿园 rganize v.(organise)组织,编组 mechanism n.机械装置,机构;机制 shipment n.装船,装运;装载的货物,装货量 destruction n.毁坏,毁灭(的原因) forthcoming a.即将到来的;准备好的;乐意帮助的;n.来临 saint n.圣人,基督教徒;(s-或st.用于人,地名前)圣 training n.训练,培养 obedience n.服从,顺从 goat n.山羊 influential a.有影响的;有权势的 creep v.爬,爬行;(植物)蔓延 shelf n.架子,搁板 cohesive a.粘合性的,有结合力的 butterfly n.蝴蝶 youth n.青年;年轻人 mortal a.致命的;终有一死的;人世间的 n.凡人 sailor n.水手,海员 sensible a.明智的,达理的;可觉察的,明显的 produce v.生产,制造,显示,演出,导致 n.产品 kingdom n.王国,领域 rigid a.刚性的;刻板的;严厉的 lease vt.出租,租用 n.租借,租期,租赁物 approach v.靠近,接近n.接近;途径,入门;方式,方法 surgery n.外科,外科学;手术室,诊疗室 theoretical a.理论(上)的 grave n.坟墓 a.严肃的,庄重的 matter n.物质,物体;毛病,麻烦;事情 v.有关系,要紧 be v.(就)是,等于;(存)在;到达,来到,发生 joke n.笑话,玩笑 v.说笑话,开玩笑 shut v.关,关闭 lord n.(lord)上帝,主;主人,长官,君主,贵族 substitute n.代替者;替身;代用品 v.(for)代替,替换 traffic n.交通,交通量 colonial a.殖民地的,关于殖民的 n.殖民地居民 diameter n.直径 boundary n.分界线,边界 pant n.喘气 v.喘,气喘吁吁地说 badge n.徽章,像章;标记;象征;记号 classical a.经典的,古典(文学)的 dwarf n.矮子,侏儒,矮小的动植物 vt.使…矮小 know vt.知道,了解;认识;识别 vi.知道,了解 drawing n.绘图,图样 scare n.惊恐,恐慌v.惊吓,受惊 raw a.未煮过的,生的;未加工过的,未经训练的 longitude n.经度 file n.锉刀;文件,档案 v.锉 acute a.剧烈的;敏锐的;成锐角的;尖的,高音的 professional a.职业的,专门的 n.自由职业者,专业人员 input n./v.输入 father n.父亲;创始人,发明者;(father)神父 reflect v.反射,反映,表现,反省,沉思 flap n.垂下物,帽沿,袋盖 n./v.拍打,拍动 cup n.杯子;奖杯,优胜杯;(一)杯,一杯的容量 virus n.病毒;(精神,道德方面的)有害影响 eyebrow n.眉毛 three num.三 pron./a.三(个,只...) span n.跨度,跨距 pathetic a.可怜的, 悲惨的 house n.房屋;商业机构;[h-]议院 v.给...房子住 waterproof a.防水的,耐水的 rude a.粗鲁的;猛烈的,残暴的;粗糙的,粗陋的 outlet n.出路,出口;销路,市场;发泄方法;电源插座 session n.(一届)会议,一段时间 panic n./a.恐慌(的),惊慌(的) vt.使惊慌,使害怕 arise v.出现,发生;(from)由…引起,由…产生 bribe n.贿赂 v.向…行贿,买通 hold v.拿着;保有;托住;举行;继续 n.握住;船舱 stupid a.愚蠢的,迟钝的 proceeding n.行动,进行,(pl.)会议录,学报 sore a.疼痛的;痛心的 n.痛处,疮口 consultant n.会诊医师,顾问医生;顾问 suggestion n.建议,意见;细微的迹象;暗示,联想 taste v.品尝;(of)有…味道;体验 n.滋味;味觉 cunning a./n.狡猾(的),狡诈(的) prevent v.(from)预防,防止,阻止,制止,妨碍 attend vt.出席,参加;照顾,护理 vi.注意;侍奉 vocal a.声音的;有声的;歌唱的 n.元音;声乐作品 globe n.球体,地球仪;地球,世界 decision n.决定,决心;决议;决策 spoil v.损坏,搞错;宠坏,溺爱 fox n.狐狸 uniform n.制服,军服 a.相同的,一律的 generator n.发电机,发生器 reclaim v.要求归还,收回;开垦 fierce a.凶猛的,残忍的;狂热的,强烈的 symmetry n.对称(性);匀称,整齐 response n.回答,响应,反应 behave v.举止,举动,表现;运转,开动 quick a.快的;灵敏的,伶俐的;敏锐的 ad.快,迅速地 capitalism n.资本主义 ease v.减轻;使舒适,使安心 n.容易;舒适,悠闲 inherit vt.继承(金钱等),经遗传而得(性格、特征) sick a.有病的,患病的;恶心的,想吐的 hurricane n.飓风 repay v.偿还,报答 wheat n.小麦 enthusiastic a.热情的,热心的 cable n.电报;电缆;缆,索,钢丝绳 v.拍电报 overcome v.战胜,克服 chop v.砍,劈,斩 n.排骨,肉块 candy n.糖果 billion num./n.(美)十亿,(英)万亿 hardly ad.几乎不,简直不;仅仅 orchard n.果园,果园里的全部果树,<美俚>棒球场 hurry vi.匆忙 vt.催促;急运(派) n.急(匆)忙 satire n.讽刺,讽刺文学,讽刺作品 fond a.(of)喜爱的,爱好的 reign n./v.统治,支配,盛行 n.统治时期 v.占优势 speaker n.说话者,发言者;说某种语言者;扬声器 emphasize v.(emphasise)强调 stay vi.逗留;保持vt.停止,延缓n.逗留,停留 dominate v.支配,统治,控制;占优势 treason n.谋反,通敌,叛国 mayor n.市长 stop v.停止;塞住;阻止,阻挠;逗留 n.停车站;停止 trade n.贸易,商业;职业,行业 v.经商,交易 absent a.缺席的;缺乏的,不存在的;心不在焉的 describe v.描述,形容 poet n.诗人 door n.门;门口,出入口;门状物;家;通道 budget n.预算 v.做预算 fat a.多脂肪的,肥胖的;丰厚的n.脂肪,肥肉 resultant a.作为结果而发生的;合成的 undo v.松开,解开 noticeable a.显而易见的,值得注意的,重要的 disaster n.灾难,大祸;彻底的失败 acceptance n.接受,接收,验收,接纳;承认,认可 gallop v./n.奔驰,飞奔 forty num./a.四十 pron.四十(个,只...) microscope n.显微镜 husband n.丈夫 overtime a.超时的,加班的 ad.加班 difference n.差别,差异,分歧 radioactive a.放射性,放射引起的 tame a.驯服的,温顺的;沉闷的,乏味的 vt.驯服 repeat v.重复,重说,重做 n.重复 factory n.工厂 ambulance n.救护车,救护船,救护飞机 certify vt.证明,证实;发证书(或执照)给 female n.女性;女人;雌兽 a.女性的;雌的;柔弱的 encounter n./v.遇到,遭遇 horse n.马;跳马,鞍马 v.骑马 wreath n.花环,花圈 stall n.货摊;畜栏,厩 v.(使)停转,(使)停止 prescribe v.指示,规定;处(方),开(药) hurl vt.猛投,力掷;大声叫骂 designate v.指明,指出;任命,指派 intrude vi.闯入,侵入vt.把(思想等)强加于人;强挤入 delegate n.代表 vt.委派…为代表;授权;委托 resolve v.决心;(使)分解,溶解;决议 n.解决;决心 pond n.池塘 drum n.鼓;圆桶 observe v.观察,观测,注意到,监视,遵守,评述,说 laser n.激光 dealer n.商人 coffee n.咖啡(色) portray v.描写,描述;画(人物、景象等) nothing n.没有东西;什么也没有;无关紧要的人或事 tar n.柏油,焦油 vt.涂或浇柏油/焦油于 overwhelming a.势不可挡的,压倒的 extract v./n.拔出,抽出;摘录 n.抽取物;精华;选集 whichever pron./a.无论哪个,无论哪些 diverse a.多种多样的,(from)不同的 palace n.宫,宫殿 calm a.(天气,海洋等)静的 n.平静 v.(使)平静 average n.平均,平均数 a.平均的;普通的 v.平均 affluent a.富裕的,富有的,丰富的,富饶的 savage a.野蛮的;凶恶的,残暴的 n.野人,未开化的人 pirate n./v.海盗,盗版(者) park n.公园,停车场,运动场 v.停放(汽车等),寄放 cure v.(of)治愈,医治;矫正 n.治愈,痊愈;良药 criminal n.罪犯,刑事犯 a.犯罪的,刑事的 humble a.谦卑的,恭顺的;地位低下的 v.降低,贬低 elephant n.(动物)象 sum n.总数,和;金额;算术题;要旨 v.合计,总计 explain v.解释,说明 finger n.手指;指状物;指针 bargain n.廉价货;交易,契约,合同 v.议价,成交 augment vt.(使)增大,增加,增长,扩张 scout n.侦察员,侦察机(舰) v.搜索,侦察 invade vt.入侵,侵略,侵袭,侵扰 humiliate v.使羞辱,使丢脸[同]disgrace grease n.动物脂,油脂,润滑脂 v.抹油,润滑 extend v.延长,延伸;扩充;给予;提供;估价 casualty n.伤亡人员;受害人;损失的东西;急诊室 scene n.景色,景象,舞台;(戏)一场 overhead a.在头顶上的;架空的 ad.在头顶上 normalization n.(normalisation)正常化,标准化 skin n.皮,皮肤;兽皮,皮毛;外皮,外壳 v.剥皮 outcome n.结果,成果 spiral a.螺旋形的 n.螺旋,螺线 v.螺旋上升;盘旋 alphabet n.字母表;初步,入门 harm n./v.伤害,损害,危害 kneel v.跪,下跪 novel n.(长篇)小说 a.新奇的,新颖的 current n.电流,水流;潮流,趋势 a.当前的;流通的 edible a.可食用的 role n.角色,作用,任务,职责 menu n.菜单 sacrifice n.牺牲,牺牲品;祭品 v.(for,to)牺牲,献出 break vt.打破;中止;违反 vi.破(裂) n.休息时间 effective a.有效的,生效的;被实施的;给人深刻印象 frequency n.频率,周率 priest n.教士,神父 meal n.膳食,一餐 scratch v.抓,搔,扒 n.抓,搔,抓痕;起跑线 pad n.垫,衬垫;便笺簿 v.加上衬垫 delay v./n.耽搁,延迟 detain v.耽搁;扣押,拘留 evoke vt.唤起(回忆、感情等);引起 lad n.男孩,小伙子 hesitate v.犹豫,踌躇;含糊,支吾 particle n.粒子,微粒;极小量;小品词,虚词 digest vt.消化;领会,融会贯通 n.文摘,摘要 slight a.轻微的,微小的;纤细的,瘦弱的 overpass n.过街天桥 vt.胜过,通过,忽视 vacation n.休假,假期 occupation n.占领,占据;占用;职业,工作 disorder n.混乱,杂乱;骚乱;失调,疾病 constitution n.构成,构造,组成(方式),成分;体格;宪法 friday n.星期五 hop v.人单足跳;跳上(车等) n.蹦跳;短程飞行 survival n.幸存,生存;幸存者,残存物 confuse v.使混乱,混淆 boast v.(of,about)自夸,夸耀 n.自夸,大话 maybe adv.可能;大概;也许 arrange v.安排,筹划;整理,使有条理,排列,布置 curb n.路边,场外证券市场,vt.制止,抑制 bridge n.桥;桥牌;鼻梁 vt.架桥;渡过 browse vi.随意翻阅,浏览;(牛、羊等)吃草 sit vi.坐,坐下;位于;栖息;孵卵 vt.使就坐 tree n.树,树状物 vi.爬上树 stride vi.大踏步走;跨越 n.一大步(pl.)长足进步 assume vt.假装;假定,设想;承担;呈现,采取 stock n.备料,库存,现货;股票,公债 v.储存 bright a.明亮的,辉煌的;聪明的;欢快的,美好的 tooth n.(pl.teeth)牙齿;齿状物; cabbage n.洋白菜,卷心菜 liberty n.自由,自由权;特权 pet n.爱畜,宠儿 a.宠爱的,表示亲昵的 passive a.被动的,消极的 crazy a.疯狂的,古怪的,蠢的;(about)狂热的 hunt v./n.打猎,猎取;(for)搜索;寻找 yard n.院子,场地;码 that a./pron.那,那个 ad.那么 conj.[引导从句] cent n.分(币);百 per cent百分之 saw n.锯子,锯床 v.锯,锯开 cloud n.云(状物);遮暗物,阴影;一大群 go v.去,离开;走;放置;变成;运转 n.围棋 make n.(产品)来源,制法 vt.制造,做成,准备 nowadays ad.现今,现在 niece n.侄女,甥女 hypothesis n.假说,假设,前提 blank a.空白的,空着的;失色的 n.空白;表格 primary a.最初的,初级的;首要的,主要的,基本的 lick vt.舔;(火焰或浪)掠过;打败 n.舔;少量 grief n.悲伤,悲痛;悲伤的事,悲痛的缘由 lately ad.最近,不久前 ornament v.装饰,美化 n.装饰,装饰物 exhibit v.展出,陈列 n.展览品,陈列品 asleep a.睡觉,睡着(用作表语) rubber n.橡皮,橡胶;橡胶制品,胶鞋 duplicate n.复制品 v.复写,使加倍 a.复制的,二重的 evolution n.进化,演变,发展,进展 courage n.勇气,胆量 terminal a.晚期的;终点的;期末的 n.终点(站);终端 soul n.灵魂,心灵;精神,精力;人 apparatus n.器械,器具,仪器;机构,组织 pure a.纯的,纯洁的;纯理论的,抽象的;完全的 persist v.(in)坚持,持续 organism n.生物,有机体 chief a.主要的,首要的 n.首领,领袖 upon prep.在…上;在…旁 [=on] frog n.蛙 muscular a.肌肉的;肌肉发达的;强健的 express v.表达,表示 a.特快的,快速的 n.快车,快运 infrastructure n.基础结构,基础设施 learning n.知识,学问;学习 wallet n.皮夹,钱包 ice n.冰;冰冻甜食 vt.冰冻,使成冰 probe n.探针,探测器 v.(以探针等)探查,穿刺,查究 systematic a.(systematical)系统的,有组织的 bug n.臭虫;小毛病;窃听器 v.窃听 spelling n.拼法,拼写法 bruise n.青肿,挫伤;伤痕vt.打青;挫伤 assert vt.断言,宣称;坚持;主张(权利、权威等) bless v.祝福,保佑 roof n.屋顶,顶 pan n.平底锅,盘子,面板 fundamental a.基础的,基本的 n.(pl.)基本原则,基本原理 rat n.鼠 worker n.工人,工作者,工作人员 biography n.传记;传记文学 infant n.婴儿,幼儿 regard v.(as)把…看作为;考虑n.(pl.)敬重,问候 jewel n.宝石,宝石饰物 nominal a.名义上的;(金额,租金)微不足道的 bucket n.水桶,吊桶 profit n.利润,收益 v.(by,from)得利,获益;有利于 attain vt.达到;完成;获得 vi.达到 presume v.假定,假设,认为,揣测,滥用,擅自行动 radiant a.发光的,辐射的,容光焕发的 formation n.形成;构成;组织;构造;编制;塑造 epoch n.新纪元;时代;时期;【地质】世,纪,期 length n.长,长度;一段,一节,程度,范围 tower n.塔 v.高耸 scan v.细看,审视;浏览;扫描 n.扫描 notebook n.笔记本 skeptical a.怀疑的 [英]sceptical dictation n.听写,口述;命令 versus prep.(vs.)…对…(在诉讼,比赛等);与…相对 rent v.租,租赁 n.租金 reptile n.爬行动物 dog n.狗,雄兽 vt.尾随,跟踪 progress v./n.进步,进展;前进 formulate v. 用公式表示;规划;设计;系统地阐述 medicine n.内服药,医药;医术;医学,内科学 besides ad.此外;并且 prep.于…之外;除…以外 portion n.一部分,一份 blood n.血液,血;血统,血亲;血气 vanish vi.突然不见;消失 commemorate vt.纪念,庆祝 hug v./n.热烈拥抱,紧抱 ridge n.岭,山脉;屋脊;鼻梁 modernization n.(modernisation)现代化 scandal n.丑闻,诽谤,耻辱,流言蜚语,反感,公愤 float n.飘浮;漂流物 v.浮动;漂浮;传播;动摇 competitive a.竞争的;好竞争的;(价格等的)有竞争力的 radiate v.放射,辐射;散布,传播 wholesome a.卫生的;有益的;健康的,有益健康的 security n.安全(感),防御(物),保证(人),(pl.)证券 deprive vt.剥夺,夺去,使丧失 tell vt.告诉,讲述;告诫;吩咐,命令;辨/区别 wholly ad.完全地,全部,一概 verb n.动词 happy a.快乐的,幸福的;乐意的;令人满意的 literacy n.有文化,有教养,有读写能力 dramatic a.戏剧的,戏剧性的;剧烈的 yourself pron.[反身代词]你自己;你亲自 merchant n.商人,零售商 yearly a.每年的,一年一度的 ad.每年,一年一次地 ground n.地,地面,土地;场地,场所;理由,根据 whole n.全部 a.全体的;全部的;完整的;无缺的 verbal a.用言辞的,用文字的;口头的;动词的 clone n.无性繁殖,克隆;复制品v.克隆 cake n.饼,糕,蛋糕;扁平的块状物 recollect v.回忆,想起,记起,忆起,记得 specialize v.(specialise)(in)专攻,专门研究,专业化 lean v.倾斜,屈身;倚,靠,依赖 a.瘦的,无脂肪的 page n.页,记录,事件,专栏 vt.给...标页码 institution n.公共机构;协会;学校;研究所;制度;惯例 disc n.(disk)圆盘,圆面,盘状物 fiber n.(fibre)纤维;构造;纤维制品 disgust n.厌恶,恶心 v.使厌恶 overflow v.(使)外溢,(使)溢出;溢出,流出,漫出 nurture n./v.养育,教育,教养 n.营养品v.给与营养物 bat n.球拍,球棒,短棒;蝙蝠 swear v.(at)诅咒,骂人;宣誓,发誓 marble n.大理石,云石 lot n.许多,大量;签,抽签;命运;场地 following a.下列的,下述的,其次的,接着的 ours pron.[we的物主代词]我们的(所有物) grateful a.(to,for)感激的;感谢的 constant a.固定的,持续的,忠实的 n.常数,恒量 first a./ad.第一;最初;首次 n.开始pron.第一名 exaggerate v.夸大,夸张 available a.(用于物)可利用的;可见到的,接受采访的 entrepreneur n.[法]企业家, 主办人 cave n.洞,穴 thick a.厚的,粗的,稠的,浓的 ad.厚,浓,密 jog v.慢跑 merely adv.仅仅,只不过 mention v./n.提及,说起 geography n.地理(学) novelty n.新奇,新颖,新奇的事物 editor n.编辑,编者 because conj.因为,由于 entire a.完全的,全部的,完整的 staple n.主要产品;名产;纤维;主要成分,主食 worse a./ad.更坏,更差(的/地) balance v.称,(使)平衡 n.天平;平衡,均衡;差额,余款 torture v.拷问,拷打;折磨,磨难 n.拷问;折磨,痛苦 product n.产品,产物;乘积 appal v.使惊骇,使恐怖 edition n.版,版本,版次 breeze n.微风;轻而易举的事 vi.来去匆匆,急速走 latin a.拉丁的,拉丁文的 n.拉丁语 forecast v./n.预测,预报 prior a.优先的,在前的;(to)在…之前 share v.(with)分配,共用;分担n.一份,份额;股份 especially ad.特别,尤其,格外;专门地,主要地 acre n.英亩;田地;地产 maths n.(mathematics/math)数学 hydrogen n.氢 climate n.气候;风气,社会思潮 retreat v.撤退,退却 intimidate vt.胁迫,威胁(某人做某事) anger n.愤怒,气愤 vt.使发怒,激怒 vi.发怒 spontaneous a.自发的,自然产生的 airport n.机场,航空站,航空港 packet n.小包裹,小捆;盒;一捆,一扎;邮船,班轮 reel n.卷筒,线轴 v.卷,绕 golden a.金黄色的;贵重的,极好的 pretty ad.相当,很a.漂亮的,俊俏的,标致的 fuel n.燃料 vt.给…加燃料 editorial n.社论 a.社论的;编辑上的 pack v.捆扎,打包;塞满,挤满n.包裹,背包,一群/副 until conj.&prep.直到…为止,在…以前;直到… tennis n.网球 strike n./vi.罢工 vt.打,击;攻击;给…深刻印象 living a.活的,有生命的,天然的,逼真的n.生活,生计 thousand num./n./a.一千;[pl.]许许多多,成千上万 serious a.严肃的;主要的;严重的,危急的;认真的 invariably ad.不变地,永恒地,总是 firm a.坚固的;坚决的,坚定的 n.公司,商号 opaque a.不透明(光)的;难理解的,晦涩的 instruct v.教,教授;命令,指示 vigorous a.朝气蓬勃的,精力旺盛的 giant n.巨人 a.巨大的 telescope n.望远镜 v.缩短,压缩 voyage n.航海;航行;旅行 satisfy v.满意,使满意,使相信,说服 linguistic a.语言的,语言学的 reverse n.相反;背面 a.相反的 v.颠倒,倒转 distant a.远的;遥远的;疏远的;不亲近的 carrier n.搬运人;载体 compassion n.同情;怜悯(for) cloudy a.多云的,阴(天)的;混浊的,模糊的 mix v.使混合;混淆 human a.人的,人类的 n.人 animal n.动物,野兽,牲畜 a.动物的,野兽的 sunrise n.日出,拂晓;朝霞 transport v.运输,运送,搬运n.运输;运输系统,运载工具 preference n.(for,to)偏爱,喜爱;优惠;优先选择 week n.星期,周 knob n.门把,(球形)把手,旋纽 weak a.虚弱的,软弱的;不够标准的;淡薄的,稀的 asset n.(pl.)资产,财产;有价值的物品;天赋 superiority n.优越(性),优势,优等;高傲,傲慢 practical a.实际的,实用的 fireman n.消防队员 litre n.(liter)升;公升(容量单位) countryside n.乡下,农村 sea n.海,海洋,大量 messenger n.送信者,使者,传令兵 symptom n.(疾病的)症状;(不好事情的)征兆,表征 watt n.瓦,瓦特 unfold vt.打开;显露;展示 vi.呈现;显示;展示 clay n.粘土,泥土 chip n.切屑,碎片;(土豆等的)薄片;集成电路块 fold v.折叠;合拢;抱住 n.褶,褶痕;羊栏;信徒 mass n.大量,众多;团,块;(pl.)群众,民众;质量 cream n.乳脂,(鲜)奶油;奶油色 magazine n.杂志,期刊 worm n.虫,蠕虫 tend v.趋向,往往是;照料,看护 transparent a.透明的,透光的;易理解的;明显的 handle n.柄,把手,拉手 v.处理,对待,操纵;触,抚养 greeting n.问候,致敬 diversion n.转向,转移;牵制;解闷;娱乐 sarcastic a.讽刺的 currency n.流传,流通;通货,货币 principal a.最重要的,主要的n.负责人,校长;资本,本金

(共5473个)

来源自网络,仅供参考

诺泰克持效性复合肥效果怎样?诺泰克复合肥在韭菜等作物上有良好的表现。

"柠檬树叶片卷曲干枯是哪般?。

冬天了 柠檬树刚换大盆 没动根系 放在室内 水也没忘浇 叶片就一直干枯卷曲 晃一晃会掉 这是咋了"?这种情况是柠檬换钵时部分根系受损引起。建议用发酵好的饼肥水加70%噁霉灵5000倍淋蔸。半个月一次,可有效促进恢复正常生长发育。

"番茄晚疫病。

怎么治疗"?"番茄晚疫病,各地抗性不同,建议烯酰吗啉,霜脲锰锌,霜霉威盐酸盐,甲霜灵锰锌,噁霜灵锰锌,氟啶胺,噁唑菌酮,氟吗啉锰锌,氰霜唑,氟醚菌酰胺等等成分选择一个或者二个混合(严重的情况下),交替使用。

( 如果是保护地大棚注意控制湿度,阴雨天湿度大建议使用百菌清烟雾剂控制病情。)蔓部如有严重的情况的,可以同时使用一个上述产品加一点水涂抹病部。

?预防为主,综合防治(预防病害用量减一减)。交替使用农药成分,不要连续使用一样的农药成分。这是植保原则。"

西红柿选什么品种好?西红柿优良品种很多,需要根据您当地的消费习惯、以及生态特点合理选择适宜的品种。

花生饼氮含量高吗??花生饼含有机氮化合物较多,略低于大豆饼,每吨花生饼相当于316公斤硫铵的含氮量。

草莓只开花不结果什么原因??我棚之前也是这样,前期触开花的肥用多了,我后面冲海藻加高钾,叶面喷钙镁硼,现在改善了

"名位老师急求帮忙。

今天有位果农,错把奈乙酸当作破眠剂涂抹在了芽苞上,100克5%的奈乙酸兑2、5斤水,这该怎么办?

文章爱游戏平台的版权声明:除非注明,否则均为苗坤旺离型膜原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
applausebadlaughcoffeefabulousfacepalmfecesfrownheyhainsidiouskeepfightingnoprobpigheadshockedslapsocialsweattolaughwatermelonwittywowyeahyellowdog
评论列表 (暂无评论,2人围观)

还没有评论,来说两句吧...

微信二维码
微信二维码
支付宝二维码
网站地图