HJ52 计算字符串的编辑距离

描述

Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家 Levenshtein 提出的,故又叫 Levenshtein Distance 。

例如:

字符串A: abcdefg

字符串B: abcdef

通过增加或是删掉字符 ”g” 的方式达到目的。这两种方案都需要一次操作。把这个操作所需要的次数定义为两个字符串的距离。

要求:

给定任意两个字符串,写出一个算法计算它们的编辑距离。

数据范围:给定的字符串长度满足 1≤len(str)≤1000

输入描述:

每组用例一共2行,为输入的两个字符串

输出描述:

每组用例输出一行,代表字符串的距离

方法一:动态规划

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>using namespace std;int main() {string str1, str2;while (cin >> str1 >> str2) {vector<vector<int>> dp(str1.size() + 1, vector<int>(str2.size() + 1, 0));for (int i = 1; i <= str2.size(); i++) dp[0][i] = i;//str1从0个字符变成str2的i个字符需要i个插入操作for (int i = 1; i <= str1.size(); i++) dp[i][0] = i;//str1从i个字符变成str2的0个字符也需要i个删除操作for(int i=1;i<=str1.size();i++){for (int j = 1; j <= str2.size(); j++) {int op1 = dp[i-1][j] + 1;//删除字符str1[i-1]int op2 = dp[i][j-1] + 1;//删除字符str2[j-1]int op3 = dp[i-1][j-1];//替换操作if(str1[i-1] != str2[j-1]){op3++;}dp[i][j] = min(min(op1, op2), op3);//替换操作和删除操作取最小}}cout << dp[str1.size()][str2.size()] << endl;}
}

方法二:滚动数组+动态规划

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>using namespace std;int main() {string str1, str2;while (cin >> str1 >> str2) {vector<int> dp(str2.size() + 1, 0);for(int i = 0; i <= str2.size(); i++)//初始化第一行dp[i] = i;for(int i = 1; i <= str1.size(); i++){dp[0] = i;//初始化dp[0],i->0需要i个删除操作int l = dp[0] - 1;for (int j = 1; j <= str2.size(); j++) {int curr = dp[j];//保留当前的值,作为dp[j+1]的左上角值dp[j] = min(min(dp[j] + 1, dp[j-1] + 1), ((str1[i-1] == str2[j-1])?0:1) + l);l = curr;//更新左上角值}}cout << dp[str2.size()]<< endl;}
}

HJ53 杨辉三角的变形

描述

以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。

求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。

数据范围: 1≤n≤109

输入描述:

输入一个int整数

输出描述:

输出返回的int值

方法一:数组模拟(超出空间)

#include<iostream>
#include<vector>
using namespace std;int main(){int n;while(cin >> n){vector<vector<int> > matrix(n, vector<int>(2 * n - 1, 0)); //一共n行,最下面一行最多有2*n-1个元素matrix[0][n - 1] = 1; //顶角matrix[n - 1][0] = matrix[n - 1][2 * n - 2] = 1; //两个底角for(int i = 1; i < n; i++)for(int j = 1; j < 2 * n - 2; j++)matrix[i][j] = matrix[i - 1][j - 1] + matrix[i - 1][j] + matrix[i - 1][j + 1];for(int i = 0; i < 2 * n - 1; i++){if(matrix[n - 1][i] != 0 && matrix[n - 1][i] % 2 == 0){ //非0偶数cout << i + 1 << endl; //输出下标加1;break;}if(i >= n - 1 && matrix[n - 1][i] == 1){ //过一半还没有找到偶数且遇到了1代表永远找不到了cout << -1 << endl;break;}}}return 0;
}

方法二:数学规律

#include<iostream>
using namespace std;int main(){int n;while(cin >> n){if(n <= 2) //小于等于2的行没有偶数cout << -1 << endl;else{if(n % 2) //奇数行偶数在第2个cout << 2 << endl;else if(n % 4 == 2) //偶数除4余2的在第4个cout << 4 << endl;else if(n % 4 == 0) //整除4的在第3个cout << 3 << endl;}}return 0;
}

HJ54 表达式求值

描述

给定一个字符串描述的算术表达式,计算出结果值。

输入字符串长度不超过 100 ,合法的字符包括 ”+, -, *, /, (, )” , ”0-9” 。

数据范围:运算过程中和最终结果均满足∣val∣≤2^31−1  ,即只进行整型运算,确保输入的表达式合法

输入描述:

输入算术表达式

输出描述:

计算出结果值

方法一:递归

#include<iostream>
#include<string>
#include<vector>
using namespace std;int compute(string& s, int left, int right){char op = '+'; //默认加开始int num = 0;vector<int> st;for(int i = left; i <= right; i++){if(isdigit(s[i])) //数字num = num * 10 + s[i] - '0'; //计算该部分数字总和if(s[i] == '('){ //进入左括号int layer = 0; //统计左括号层数int j = i;while(j <= right){ //遍历到右边if(s[j] == '(')layer++; //遇到左括号,层数累加else if(s[j] == ')'){layer--; //遇到右括号层数递减if(layer == 0) //直到层数为0break;}j++;}num = compute(s, i + 1, j - 1); //递归计算括号中的部分i = j + 1;}if(!isdigit(s[i]) || i == right){ //遇到运算符或者结尾switch(op){ //根据运算符开始计算case '+': st.push_back(num); break; //加减法加入到末尾case '-': st.push_back(-num); break;case '*': st.back() *= num; break; //乘除法与末尾计算case '/': st.back() /= num; break;}op = s[i]; //修改为下一次的运算符num = 0;}}int res = 0; for(int x : st) //累加和res += x;return res;
}
int main(){string s;while(cin >> s){cout << compute(s, 0, s.length() - 1) << endl;}return 0;
}

方法二:双栈法

#include<iostream>
#include<stack>
using namespace std;void compute(stack<int>& st1, stack<char>& st2){ //根据栈顶运算符弹出栈顶两个元素进行运算int b = st1.top();st1.pop();int a = st1.top();st1.pop();char op = st2.top(); //栈顶运算符st2.pop();if(op == '+') a = a + b; //加else if(op == '-') a = a - b; //减else if(op == '*') a = a * b; //乘else if(op == '/') a = a / b; //除st1.push(a);
}bool priority(char m, char n){ //比较运算符优先级if(m == '(') //括号优先级最高return false;else if((m == '+' || m == '-') && (n == '*' || n == '/')) //加减法小于乘除法return false;return true;
}
int main(){string s;while(cin >> s){stack<int> st1; //记录运算数字stack<char> st2; //记录运算符st2.push('('); //整个运算式添加括号s += ')';bool flag = false;for(int i = 0; i < s.length(); i++){if(s[i] == '(') //如果是左括号都在运算符栈加入(st2.push('(');else if(s[i] == ')'){ //遇到右括号while(st2.top() != '('){ //弹出开始计算直到遇到左括号compute(st1, st2);}st2.pop(); //弹出左括号} else if(flag){ //运算符while(priority(st2.top(), s[i])){ //比较运算优先级compute(st1, st2); //可以直接计算}st2.push(s[i]); //需要将现阶段加入栈中等待运算flag = false;} else{ //数字int j = i; //记录起始if(s[j] == '-' || s[j] == '+') //正负号i++;while(isdigit(s[i])){i++;}string temp = s.substr(j, i - j); st1.push(stoi(temp)); //截取数字部分,转数字i--;flag = true; //数字结束,下一次flag为true就是运算符了}}cout << st1.top() << endl; //输出}return 0;
}

HJ55 挑7

描述

输出 1到n之间 的与 7 有关数字的个数。

一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...)

数据范围:1≤n≤30000

输入描述:

一个正整数 n 。( n 不大于 30000 )

输出描述:

一个整数,表示1到n之间的与7有关的数字个数。

方法一:连除法判断

#include<iostream>
using namespace std;bool select7(int i){if(i % 7 == 0) //7的倍数return true;while(i != 0){ //连除法if(i % 10 == 7) //数字里包含7return true;i /= 10;}return false;
}
int main(){int n;while(cin >> n){int count = 0;for(int i = 1; i <= n; i++) //穷举1到nif(select7(i)) //查看是否符合要求count++;cout << count << endl;}return 0;
}
#include<iostream>
#include<string>
using namespace std;int main(){int n;while(cin >> n){int count = 0;for(int i = 7; i <= n; i++) //枚举7到nif(i % 7 == 0 || to_string(i).find('7', 0) != string::npos) //整除7或者转化字符串后能找到字符7count++;cout << count << endl;}return 0;
}

HJ56 完全数计算

描述

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

输入n,请输出n以内(含n)完全数的个数。

数据范围:1≤n≤5×105

输入描述:

输入一个数字n

输出描述:

输出不超过n的完全数的个数

方法一:

大数学家欧拉曾推算出完全数的获得公式:如果p是质数,且2^p-1也是质数,那么(2^p-1)X2^(p-1)便是一个完全数。
例如p=2,是一个质数,2^p-1=3也是质数,(2^p-1)X2^(p-1)=3X2=6,是完全数。
例如p=3,是一个质数,2^p-1=7也是质数,(2^p-1)X2^(p-1)=7X4=28,是完全数。
例如p=5,是一个质数,2^p-1=31也是质数,(2^p-1)X2^(p-1)=31X16=496是完全数。
当2^p-1是质数的时候,称其为梅森素数。到2013年2月6日为止,人类只发现了48个梅森素数,较小的有3、7、31、127等

//C++
#include <iostream>
#include <math.h>using namespace std;bool is_prime(int p);// 如果p是质数,且2^p-1也是质数,那么(2^p-1)X2^(p-1)便是一个完全数
int main()
{int n;while(cin >> n){int count = 0;for(int p=2; p<sqrt(n); p++){long int t = pow(2,p)-1;if( is_prime(p) && is_prime(t) ){int perfect_num = pow(2,p-1) * t;if(  perfect_num>0 && perfect_num<n )count++;}     }cout << count << endl;}return 0;
}bool is_prime(int p)
{for(int i=2; i<sqrt(p); i++)if(p % i == 0)return false;return true;
}

方法二:

#include <bits/stdc++.h>
using namespace std;int main()
{int n;  //待输入的数while(cin>>n){int count=0;  //计数器//遍历从2到n的每一个数,并在下一层for计算是否为完全数for(int k=2;k<=n;k++)  {int sum=1;  //每个数都包含1这个因数for(int i=2;i<=k/2;i++) //除以2:根据题干推出的缩小i范围的方法{if(k%i==0)sum=sum+i;}if(k==sum)count++;}cout<<count<<endl;}return 0;
}

HJ57 高精度整数加法

描述

输入两个用字符串 str 表示的整数,求它们所表示的数之和。

数据范围: 1≤len(str)≤10000

输入描述:

输入两个字符串。保证字符串只含有'0'~'9'字符

输出描述:

输出求和后的结果

方法一:

#include<iostream>
#include<string>
#include<stack>
#include<algorithm>
using namespace std;// 将两个字符串扔到两个栈中,逐个斩当头,直到两个栈都空
// 主要是注意进位问题,最后一位的问题
int main() {string s1, s2;while (cin >> s1 >> s2) {string ans;stack<char> st1;stack<char> st2;for (char c : s1) {st1.push(c);}for (char c : s2) {st2.push(c);}int flag = 0;while (st1.size() != 0 || st2.size() != 0) {int temp = 0;if (st1.size() != 0) {temp += st1.top() - '0';st1.pop();}if (st2.size() != 0) {temp += st2.top() - '0';st2.pop();}// temp和flag加完后再取余和除以,这是考虑到加完flag后刚好为10的情况ans += (temp + flag) % 10 + '0';flag = (temp + flag) / 10;// 对于两个栈都空之前,判断有没有进位,如果进位则直接加'1'if (flag == 1 && st1.size() == 0 && st2.size() ==0)ans += '1';}// 记得反转一下再输出reverse(ans.begin(), ans.end());cout << ans << endl;}return 0;
}

HJ58 输入n个整数,输出其中最小的k个

描述

输入n个整数,找出其中最小的k个整数并按升序输出

本题有多组输入样例

数据范围:1≤n≤1000  ,输入的整数满足 1≤val≤10000

输入描述:

第一行输入两个整数n和k
第二行输入一个整数数组

输出描述:

从小到大输出最小的k个整数,用空格分开

方法一:暴力方法

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,k;while(cin>>n>>k){   //输入n和kvector<int> num;for(int i=0;i<n;i++){   //逐个储存n个整数int temp;cin>>temp;num.push_back(temp);}sort(num.begin(),num.end());//对n个数进行升序排序for(int i=0;i<k-1;i++){   //输出前k个数字cout<<num[i]<<' ';}cout<<num[k-1]<<endl;//最后一个数字输出后不要输出空格了}return 0;
}

方法二:堆方法

#include <bits/stdc++.h>
using namespace std;
int main()
{int n = 0, k = 0;while(cin >> n >> k){vector<int> vec;int num = 0;while(n--){cin >> num;vec.push_back(num);}//建堆k*logkvector<int> heap(vec.begin(), vec.begin() + k);make_heap(heap.begin(), heap.end(), less<int>());//插入(n - k)*logkfor(int i = k; i < vec.size(); i++){if(vec[i] < heap[0]){//插入一个更小的heap.push_back(vec[i]);push_heap(heap.begin(), heap.end());//弹出一个最大的pop_heap(heap.begin(), heap.end());heap.pop_back();}}//从小到大输出,k*logk + ksort(heap.begin(), heap.end());for(int i = 0; i < heap.size(); i++){cout << heap[i];if(i != heap.size() - 1){cout << " ";}}cout << endl;}
}

HJ59 找出字符串中第一个只出现一次的字符

描述

找出字符串中第一个只出现一次的字符

数据范围:输入的字符串长度满足1≤n≤1000

输入描述:

输入一个非空字符串

输出描述:

输出第一个只出现一次的字符,如果不存在输出-1

方法一:哈希表统计频率

#include<iostream>
#include<string>
#include<unordered_map>
using namespace std;int firstNotRepeat(string& str) {unordered_map<char, int> mp;for(int i = 0; i < str.length(); i++) //统计每个字符出现的次数mp[str[i]]++;for(int i = 0; i < str.length(); i++) //找到第一个只出现一次的字母if(mp[str[i]] == 1)return i;return -1; //没有找到
}int main(){string s;while(getline(cin, s)){ int pos = firstNotRepeat(s); //找到该该字符的位置if(pos == -1) //没找到输出-1cout << -1 << endl;elsecout << s[pos] << endl; //输出字符}return 0;
}

方法二:队列+哈希表统计位置

#include<iostream>
#include<string>
#include<unordered_map>
#include<queue>
using namespace std;int firstNotRepeat(string& str) {unordered_map<char, int> mp; //统计字符出现的位置queue<pair<char, int> > q;for(int i = 0; i < str.length(); i++){if(!mp.count(str[i])){ //没有出现过的字符mp[str[i]] = i;q.push(make_pair(str[i], i));}else{ //找到重复的字符mp[str[i]] = -1; //位置置为-1while(!q.empty() && mp[q.front().first] == -1) //弹出前面所有的重复过的字符q.pop();}}return q.empty() ? -1 : q.front().second;}int main(){string s;while(getline(cin, s)){ int pos = firstNotRepeat(s); //找到该该字符的位置if(pos == -1) //没找到输出-1cout << -1 << endl;elsecout << s[pos] << endl; //输出字符}return 0;
}

方法三:首次末次比较解法

#include <bits/stdc++.h>
using namespace std;
int main()
{string str;while(cin >> str){bool flag = false;//flag用来判断是否存在只出现一次的字符for(int i =0;i<str.size();i++)//遍历一遍字符串{if(str.find_first_of(str[i]) == str.find_last_of(str[i]))//判断当前字符是否是只出现了一次{cout << str[i] << endl;//若是,则输出这个字符flag = true;break;//找到了第一次出现的字符,跳出循环}}if(!flag) cout << "-1" << endl;//如果没有找到第一次出现的字符,则输出-1}return 0;
}

方法四:频数统计方法

#include <bits/stdc++.h>
using namespace std;
int main()
{string str;while(cin>>str){int count[26] = {0};for(int i = 0; i < str.size(); i++)//统计每个字符出现的频数{count[str[i] - 'a']++;}bool flag = false;//用户判断是否存在只出现一次的字符for(int i = 0; i < str.size(); i++){if (count[str[i] - 'a'] == 1)//判断当前字符是否只出现一次{cout<<str[i]<<endl;flag = true;//改变flagbreak;}}if(!flag){//若flag为false表示不存在只出现一次的字符cout<<-1<<endl;}}return 0;
}

HJ60 查找组成一个偶数最接近的两个素数

描述

任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

数据范围:输入的数据满足 4≤n≤1000

输入描述:

输入一个大于2的偶数

输出描述:

从小到大输出两个素数

方法一:穷举

#include<iostream>
using namespace std;bool isPrime(int n){ //判断数字n是否是素数for(int i = 2; i < n; i++){ //遍历到n-1if(n % i == 0) //如果由因子就不是素数return false;}return true; //遍历完都没有就是素数
}int main(){int n;while(cin >> n){int mindis = n;pair<int, int> res; //记录两个素数for(int i = 2; i < n; i++){ //遍历2到n找到两个素数if(isPrime(i) && isPrime(n - i)){ //两个数都是素数的时候if(abs(n - i - i) < mindis){ //找距离最小res = {i, n - i}; //更新最小mindis = abs(n - i - i);}}}cout << res.first << endl << res.second << endl;} return 0;
}

方法二:穷举优化

#include<iostream>
#include<math.h>
using namespace std;bool isPrime(int n){ //判断数字n是否是素数for(int i = 2; i * i <= n; i++){ //遍历到根号nif(n % i == 0)return false;}return true;
}int main(){int n;while(cin >> n){int mindis = n;pair<int, int> res; //记录两个素数for(int i = n / 2; i > 1; i--){ //从n的中间开始找if(isPrime(i) && isPrime(n - i)){ //第一次遇见两个数都是素数的时候距离从小cout << i << endl << n - i << endl;break;}}} return 0;
}

HJ61 放苹果

描述

把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?

注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。

数据范围:0≤m≤10 ,1≤n≤10 。

输入描述:

输入两个int整数

输出描述:

输出结果,int型

解法一:dfs

#include <iostream>
using namespace std;int dfs(int m, int n) {if (m == 0) return 1; // 第一种情况,我们的苹果的数量为 0if (n == 1) return 1; // 第二种情况,我们只剩下了一个盘子if (m < n) return dfs(m, m); // 如果我们的苹果数量小于了我们的盘子的数量,我们让盘子数量等于苹果的数量return (dfs(m - n, n) + dfs(m, n - 1)); // 其他情况的时候,我们要计算少一个盘子,和所有盘子拿走一个苹果的情况,最后就是答案
}
void solve() {int m, n;while(cin >> m >> n) {  // 多组输入我们的 m 和 ncout << dfs(m, n) << "\n"; // dfs最后返回的就是我们的答案}
}
signed main()
{ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);solve();return 0;
}

解法二:动态规划

#include <iostream>
#include <cstring>
using namespace std;const int N = 20;
int dp[N][N], n, m;
// n个盘子,m个苹果,dp[i][j]代表i个苹果,j个盘子有多少种放的方法void solve() {    while(cin >> m >> n) {memset(dp, 0, sizeof dp); // 清空我们的这个二维的dp数组for (int i = 1; i <= n; i++) dp[0][i] = 1; // 把苹果数量为1的,选法置为1for (int i = 1; i <= m; i++) dp[i][1] = 1; // 把盘子数置为1的,选法置为1for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) {if (i < j) dp[i][j] = dp[i][i]; // 如果盘子数量大于苹果的数量,那么转移方程else dp[i][j] = dp[i - j][j] + dp[i][j - 1]; // 如果苹果数量大于等于盘子的数量,我们将他们转移为二者相加}}cout << dp[m][n] << "\n"; // 输出最后的答案}
}
signed main()
{ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);solve();return 0;
}

华为机考108题(c++)(52-61)相关推荐

  1. 华为机考108题(c++)(31-40)

    HJ31 单词倒排 描述 对字符串中的所有单词进行倒排. 说明: 1.构成单词的字符只有26个大写或小写英文字母: 2.非构成单词的字符均视为单词间隔符: 3.要求倒排后的单词间隔符以一个空格表示:如 ...

  2. 华为机考108题(c++)(101-108)

    HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序 描述 输入整型数组和排序标识,对其元素按照升序或降序进行排序 数据范围: 1≤n≤1000  ,元素大小满足 0≤val≤10000 ...

  3. 华为机考108题(c++)(41-51)

    HJ41 称砝码 描述 现有n种砝码,重量互不相等,分别为 m1,m2,m3-mn : 每种砝码对应的数量为 x1,x2,x3...xn .现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种 ...

  4. 华为机考108题(c++)(81-90)

    HJ81 字符串字符匹配 描述 判断短字符串S中的所有字符是否在长字符串T中全部出现. 请注意本题有多组样例输入. 数据范围:1≤len(S),len(T)≤200 进阶:时间复杂度:O(n),空间复 ...

  5. 2023华为机考刷题指南:八周机考速通车

    2023.1.13更新: 拿到了华子offer,看到这个贴子一直有人收藏,最近有空完善一下,主要是把深搜的几道题的题号添上. 华子的机考不算简单,挺难的,还是得好好准备一下,而且技术面必撕题,所以刷题 ...

  6. Python 华为机考真题【用户调度问题】分值【Q2-200】

    提示:机考笨方法也许也是好方法(本题考深度优先搜索) 前言 华为题型: (1)考试时长150分钟.三道应用编程题,生活中的问题,用程序解决. (2)前两道各100分,第三道200分. (3)前两道相对 ...

  7. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  8. 【华为机考刷题】2022_6_14

    [机考练习地址]机考练习地址(供参考): https://www.nowcoder.com/ta/huawei HJ1 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开,字符串长 ...

  9. 华为机考1-54题总结

    华为笔试面试机考在线练习,欢迎练习并在讨论区交流题解与想法. 华为机试 质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 ...

最新文章

  1. 一文盘点AutoML 库,自动机器学习演讲摘要
  2. 365天带薪休假 VS 折现,当事人这么选...
  3. 【Python】程序的分支结构之异常处理
  4. GAN生成对抗网络-SSGAN原理与基本实现-半监督学习GAN-08
  5. 小米路由器 梅林_WIFI6真的有用吗?小米ALOT路由器AX3600上手体验!小米智能家居生态之选及选购分析...
  6. 关于比较两个字节数组是否内容相同
  7. 霍金遗作《十问:霍金沉思录》出版 马化腾作跋纪念
  8. (转载) MTK之NVRAM研究[三]
  9. synchronized 修饰在 static方法和非static方法的区别
  10. java的三大特征:封装,继承和多态
  11. 用js来实现添加学生信息表
  12. R语言学习笔记(二)——回归分析
  13. 放回不等概率抽样-PPS抽样
  14. CPU连续飙升的背后是 “道德的沦丧” 还是 “人性的泯灭”
  15. 基于多二维码识别的无人机运动真值获取
  16. Go unkown reversion问题解决
  17. 项目实战二:共享单车后台2
  18. node os模块读取hostname乱码
  19. 根据以下原理图使用VHDL语言编写完整程序。
  20. Mac安装mysql忘记初始的默认密码!!

热门文章

  1. 2021年度国家科技奖进入申报期,这几个问题需要重点关注!
  2. Unity 输出360图片
  3. 【负荷预测】基于改进灰狼算法(IGWO)优化的LSSVM进行负荷预测(Matlab代码实现)
  4. IDEA Git和svn切换
  5. Remember Me 功能实现
  6. Python 微信自动化工具开发系列02_自动获取微信多个好友聊天信息(2023年1月可用)
  7. telegram协议电报群组采集,群用户提取,私发消息,群拉人,关键词监控回复等引流自动化
  8. 『跟着雨哥学AI』系列之八:趣味案例——有关NLP任务数据预处理的那些事儿...
  9. Android插件化开发指南——Hook技术(一)【长文】
  10. 报名成功冲向高级软件工程师之路开始了