- 博客(14)
- 收藏
- 关注
原创 Leetcode刷题记1:反转字符串中的单词
leetcode557:反转字符串中的单词给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。char * reverseWords(char * s){ int length=strlen(s); char* ans=(char*)malloc(sizeof(char)*(length+1)); ans[length]=0; int i=0,j=length; while(i<length){ in
2022-03-18 21:09:04
134
原创 C语言排序算法
冒泡排序:void bubble_sort(int* nums,int numsSize) { int tmp; for (int i = 0; i < numsSize; i++) { for (int j = 0; j < numsSize-1; j++) { if (nums[j] > nums[j+1]) {//升序排列,交换两数 tmp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = tmp; .
2022-03-16 09:47:02
1317
原创 扩展欧几里得算法(求乘法逆元)
#include<stdio.h>#include<math.h>#include<iostream>using namespace std;int ext_euclid(int a, int b, int& x, int& y){ int cnt = a; int v[100], w[100]; v[0] = 1, v[1] = 0; w[0] = 0, w[1] = 1; int tmp, r, q, i = 1; do
2021-11-22 22:30:40
264
原创 算法题(起题目困难户)
题目描述小明刚买了一个机械键盘,但他在用机械键盘打字的时候发现键盘的Home键和End键坏掉了,于是他在打字的时候光标有时会突然跑到行首,有时又会突然跑到行尾,现在给你键盘的输入,求最后屏幕上的字符串。输入数据输入数据为一行字符串,字符串只包含小写英文字母,’[‘符号以及’]‘符号,’['代表按下了Home键,‘]’代表按下了End键,字符串长度不超过100000。输出数据输出最后屏幕上的字符串。样例输入xiechengxuz[henhao]wan样例输出henhaoxiechengxuz
2021-10-03 10:27:11
210
原创 整数转换(十进制,二进制转换)
题目:代码:#include<iostream>#include<string>#include<queue>#include<cmath>using namespace std;int main(){ long long arr[32] = {0}; int n,i=0; long long count = 0; cin >> n; while(n) { arr[i] = n % 2; n = n
2021-10-03 10:11:21
188
原创 Superprime问题
题目:代码:#include<iostream>#include<string>#include<queue>#include<cmath>using namespace std;bool isPrime(int n){ if (n == 2) return true; if (n == 1 || n == 0) return false; if (n % 2 == 0) return false; for (int i
2021-10-03 10:03:03
175
原创 最大公倍数和最小公约数问题
题目:代码:#include<iostream>#include<string>#include<queue>using namespace std;int gcd(int a, int b){ int tmp; if (a % b == 0) return b; else { while (a % b != 0) { tmp = a % b; a = b; b = tmp; } re
2021-10-03 09:45:41
86
原创 立方质数问题
题目:代码:#include<iostream>#include<string>#include<queue>#include<cmath>using namespace std;bool isPrime(int n){ if (n == 1 || n == 0) return false; if (n % 2 == 0) return false; for (int i = 3; i <= sqrt(n)+1; i
2021-10-03 09:30:50
383
原创 合并果子(优先队列)
题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最
2021-09-23 09:24:09
115
原创 岛屿问题(矿床问题)
题目描述:在一个被分成n*n个格子的平原上,有一些格子有铁矿,两格铁矿如果相邻那么就认为他们属于同一个矿床,每个矿床都包含一个或更多个铁矿,问一共有几个矿床。两个格子只要有公共边或公共点就算相邻。输入数据第一行为一个正整数n,n<=1000 接下来有n行,每行有n个字符,表示平原的对应位置有没有铁矿,*代表没有,#代表有输出数据矿床个数算法:#include<iostream>#include<queue>using namespace std;vo
2021-09-23 09:19:10
239
2
原创 c语言实现维吉尼亚密码和希尔密码的加解密
维吉尼亚密码:加密:void EnVirginia(char* plaintext, int* k){ int length = strlen(plaintext); int m, n; for (int i = 0; i < length; i++) { m = plaintext[i] - 'a'; n = m + k[i]; n >= 0 ? n = n : n = n + 26; printf("%c", 'a' + n); } printf("\n")
2021-09-23 08:43:26
1400
原创 算法题(一元三次方程求解,求n根木棒围成三角形最大周长)
最近做的一些算法作业:(1)题目描述:解法:int main(){ double Coe[4]; for (int i = 0; i < 4; i++) scanf("%lf", &Coe[i]); getX(Coe); }double res(double* Coe,double x){ return Coe[0] * x * x * x + Coe[1] * x * x + Coe[2] * x + Coe[3];}void getX(double* Co
2021-09-16 22:28:54
148
原创 C语言实现移位密码算法,仿射密码算法
密码学课上学到的两种加密算法,下面给出两种算法的源码:移位密码:(1)加密算法:void EnShiftCipher(char* plaintext,int k){ int i=0; int m=0,n=0; int length = strlen(plaintext); while (length--) { m = plaintext[i] - 'a'; n = (m + k) % 26; printf("%c", 'a' + n); i++; } printf("\
2021-09-16 09:50:07
2201
原创 欧几里得算法求最大公因数(C语言)
利用欧几里得算法求最大公因数下面给出递归和循环两种解法:(1) 循环:int EuclidByrecur(int a, int b){ int tmp; if (a % b == 0) return b; else { while (a % b != 0) { tmp = a%b; a = b; b = tmp; } return b; }}(2)递归:int EuclidByCir(int a, int b)//递归{ if (a
2021-09-16 09:11:26
979
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人