算法题目分享总结
王道机试指南
例题2.2 反序数
采用Reverse函数用于求反序数,通过对x不断进行除运算,然后对revx不断进行乘运算。
1 |
|
例题2.4 输出梯形
题目描述:输入一个高度h,输出一个高度为h、上底边长度为h的梯形。
1 |
|
P.S:可以采用上述while循环的语句能够保证对多组测试数据进行处理,又使程序输入结束后能够正常退出。scanf函数的返回值是成功赋值的个数。
1 |
|
例题2.5 叠筐
求解排版题的新思路:当输出的图形具有的规律不能或者很难直接应用到输出时,应该首先用一个缓存数组来保存将要输出的字符阵列,然后在该数组上完成排版,最后按照排版输出整个图形。
1 |
|
例题2.6 今天的第几天?
P.S:注意CPP中的二维数组创建方法
1 |
|
完整的程序如下:
1 |
|
例题2.9 剩下的树
P.S:采用指针偏移初始化的方法能够提高一直循环的效率。
1 |
|
完整的程序如下:
1 |
|
例题2.10 手机键盘
- 可以先将按键次数记录在一个数组中,每当遇到一个字母,直接访问数组便可得到该字母的按键次数。
1 |
|
- 判断两个字母是否属于同一个按键:如果两个字母同属一个按键,那么字母本身的间距就等于他们按键次数的差。反之,如果不相等,则这两个字母必定属于不同的按键。
1 |
|
- 应当了解和掌握C++中关于
string
类型的用法。
完整的程序如下:
1 |
|
例题3.2 成绩排序
- 遇到一组基本类型数据时,可以将其封装为一个结构体或类进行处理。
1 |
|
- 对于新的排序规则,具有以下准则,当比较函数的返回值为true时,表示第一个参数将会排在第二个参数的前面。
sort
不填写默认为升序方式。
1 |
|
完整的程序如下:
1 |
|
例题3.5 查找
- 二分查找法必须熟练掌握(采用升序)
1 |
|
完整的程序如下:
1 |
|
第四章 字符串处理
string中的元素操作
string中的常用元素操作包括:
- 在任意位置插入元素的insert()
1 |
|
输出:
1 |
|
- 在任意位置删除元素的erase()
括号内第一个数字是起始下标,第二个数字是偏移。不加第二个数字则为从起始一直擦除到最后。
1 |
|
输出:
1 |
|
- 将字符串中所有的内容直接清空的clear()
string中的运算符
- string类型的字符串可以通过"+“和”+="来将两个或者多个字符串拼接成一个更长的字符串
- string类型按照字典序进行比较
在数学中,字典或词典顺序(也称为词汇顺序,字典顺序,字母顺序或词典顺序)是基于字母顺序排列的单词按字母顺序排列的方法,如abcdefg…也称为字典序。字典序最最小:指的是顺序最小和字符串的长度无关。如d和abcd比较,d>a, 然后直接结束比较。abcd为最小字典序。在ab 和 abc 比较,前两个字符一样,然后abc字符串长。ab为最小字典序。
string中的常用函数
- c++中find() 函数与string::npos参数
1 |
|
- c++中返回字符串子串函数substr()
1 |
|
算法题目分享总结
http://example.com/2023/06/17/algorithm/