每日编程(20220403)
西安电子科技大学上机题(五)
题目: 已知某二叉树的先序序列和中序序列,编程计算并输出该二叉树的后序序列。
输入格式:
123仅一组数据,分为两行输入,第一行表示指定二叉树的先序序列,第二行表示该二叉树的中序序列,序列元素均为大写英文字符,表示二叉树的结点。
输出格式:
1在一行上输出该二叉树的后序序列
输入样例:
12ABDGCEFHDGBAECHF
输出样例:
1GDBEHFCA
思路:
代码:
1
前端知识总结
前端知识总结
网络相关
HTTP 、 HTTP 0.9 、 HTTP 1.0 、 HTTP 1.1 和 HTTP 1.1
HTTP 是一种协议,全称超文本传输协议(英文:Hyper Text Transfer Protocol)。它是一种构建在 TCP/IP 之上的应用层协议。主要用于实现客户端和服务端的沟通。
五层网络结构主要包括:应用层、传输层、网络层、数据链路层、物理层。
HTTP的报文结构
HTTP 是基于 TCP 的,而 TCP 在传输时分为: TCP 头和数据部分。
HTTP 请求报文由四部分组成:
请求行
头部
空行
请求体
请求行
请求行由三部分组成:
请求方法
请求url(不包括域名)
HTTP 协议版本
1GET /home HTTP/1.1
请求方法:
序号
方法
描述
定义方法的协议
1
GET
请求指定页面的信息,返回实体主体
HTTP 1.0
2
HEAD
类似于GET请求,只不过返回的响应没有具体内容,用于获取报头
HTTP 1.0
3
POST
向指定资源提交数据进行处理请求,数据包含在请求体中。POST请求可能会导致新 ...
每日编程(20220402)
西安电子科技大学上机题(四)
题目: 对于给定的字符序列,从左至右将所有的数字字符取出拼接成一个无符号整数(字符序列长度小于100,拼接出的整数小于2^31),计算并输出该整数的最大因子(如果是素数,则其最大因子为自身)。
输入格式:
1有多组数据,输入数据的第一行为一个正整数,表示字符序列的数目,每组数据为一行字符序列。
输出格式:
1对每个字符序列,取出所得整数的最大因子,若字符序列中没有数字或者找出的整数为0,则输出0,每个整数占一行输出。
输入样例:
1232qwq243dnh5
输出样例:
12127
思路:
主要在于分三步完成
首先获取用户输入,并用变量保存好
拆分出用户输入的字符串中的无符号数字保存在数组中
通过类似于求素数的方式求函数的因子(不同点在于不要从 sqrt(num) 开始,而应该从 num / 2 开始,因为 2 是最小的素数,而最大的因子除本身外应该是除 2 得到的数),从大到小遍历
代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445 ...
JavaScript学习之路(六) 函数表达式
定义函数
函数定义的两种方式:
函数声明式
1234// 函数声明式function fun(arg0, arg1, ...){ // 函数体}
函数表达式
1234// 函数表达式const fun = function (arg0, arg1, ...) { // 函数体}
函数声明式的特性:函数声明提升。
函数声明提升是指在执行代码之前,会先读取函数声明。这样函数的调用就不必放在函数声明之后。
123456// 函数声明提升 示例 先调用在声明sayHi() // Hi! function sayHi() { console.log('Hi!')}
递归
递归函数是指应该函数通过函数名调用自身。
12345678// 递归经典示例: 乘阶function factorial(num) { if(num <= 1 ){ return 1 }else { return num * factorial(num - 1) } ...
每日编程(20220401)
西安电子科技大学上机题(三)
题目: 请写一个程序,对于一个m行m列的(1 < m < 10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。
输入说明:共一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。
输入格式:
1输入一个数字方阵
输出格式:
1从大到小排列的一行整数,每个整数后跟一个空格,最后换行
输入样例:
123431 2 34 5 67 8 9
输出样例:
124 18 15 15 15 12 6
思路:
最优的算法在于用最少的循环做最多的事
本题简单,直接硬算,注意策略即可
代码:
123456789101112131415161718192021222324252627282930313233#include <bits/stdc++.h>using namespace std;void getSun(int mat[][10], int m, int *res) { for(int i = 0; i<m; i++) { ...
每日编程(20220331)
西安电子科技大学上机题(二)
题目: 写一个程序,给出指定整数范围[a ,b]内所有的完数,一个数如果恰好等于除它本身外的所有因子之和,这个数就称为完数,例如6是完数,因为6=1+2+3。
输入格式:
1共一组数据,为两个正整数,分别表示a和b(1<a<b<10^5)
输出格式:
1指定范围内的所有完数,每个数占一行
输入样例:
126100
输出样例:
123428原题样例应该有误:是闭区间[6, 100]应当输出:628
思路:
循环遍历范围内所有的数
求出每个数的因子有哪些
求出因子的和看是否会等于当前数
等于则保存在数组或者 vector 中
代码:
123456789101112131415161718192021222324252627282930313233343536#include <bits/stdc++.h> using namespace std;vector<int> getYinZi(int num) { // 求数的因子 vector<int> yinzi; for(int i ...
每日编程(20220330)
西安电子科技大学上机题(一)
题目: 编写一个程序,从键盘输入 n 个非零常数(0 < n < 1000),将这 n 个数中每个数的各位数字取出来相加,并按照从小到大的次序输出这些数字和。
输入格式:
1输入的整数之间以空格分割,输入为 0 时结束
输出格式:
1在一行上从小到大输出计算结果,整数之间用一个空格分割,最后换行
输入样例:
156 12 789 521 0
输出样例:
13 8 11 24
思路:
先获取内存缓冲区中的输入值,对得到的空格分隔的字符串一个一个进行处理。
将每个字符串按索引相加,得到值,并存入向量中。
对向量进行排序。
按照固定格式输出向量里面的值
代码:
12345678910111213141516171819#include<bits/stdc++.h>using namespace std; int main(void) { string s; vector<int> res; while((cin >> s) && s != "0") ...
JavaScript学习之路(五)面向对象程序设计
理解对象
创建自定义对象最简单的方式就是创建一个Object的实例,再为实例添加属性和方法。
123456789101112131415161718// 创建 Object 实例 person// 第一种方式const person = new Object();person.name = 'zs'person.age = 18person.gender = '男'person.sayHello = function() { console.log(this.name)}// 第二种方式const person = { name: 'zs', age: 29, gender: '男', sayName: function () { console.log(this.name) }}
属性类型
ECMAScirpt 中有两种属性类型: 数据属性类型 和 访问器属性
数据属性
数据属性包含一个数值的位置。在这个位置可以读取和写入值。 ...
算法之路(20220326)
今日题目:将数字变成 0 的操作次数、最富有客户的资产总量、两数相加、无重复字符的最长子串、寻找两个正序数组的中位数
20220326算法题
将数字变成 0 的操作次数
给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
示例 1:
输入: num = 14
输出: 6
解释: 步骤 1) 14 是偶数,除以 2 得到 7 。
步骤 2) 7 是奇数,减 1 得到 6 。
步骤 3) 6 是偶数,除以 2 得到 3 。
步骤 4) 3 是奇数,减 1 得到 2 。
步骤 5) 2 是偶数,除以 2 得到 1 。
步骤 6) 1 是奇数,减 1 得到 0 。
示例 2:
输入: num = 8
输出: 4
解释:
步骤 1) 8 是偶数,除以 2 得到 4 。
步骤 2) 4 是偶数,除以 2 得到 2 。
步骤 3) 2 是偶数,除以 2 得到 1 。
步骤 4) 1 是奇数,减 1 得到 0 。
示例 3:
输入: num = 123
输出: 12
提示:
0 <= num <= 10^6 ...
算法之路(20220319)
今日题目:罗马数字转整数、回文链表、赎金信、Fizz Buzz、链表的中间结点、矩阵中战斗力最弱的 K 行
20220319算法题
罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做
XXVII, 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5
的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L ...





