前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++刷题使用过的一些套路

C++刷题使用过的一些套路

作者头像
英雄爱吃土豆片
发布2020-11-04 10:09:20
3640
发布2020-11-04 10:09:20
举报
文章被收录于专栏:英雄爱吃土豆片

求两个数的最大公约数(辗转相除法)

代码语言:javascript
复制
int gck(int a, int b) {
	while (a % b > 0) {
		int temp = a % b;
		a = b;
		b = temp;
	}
	
	return b;
} 

求一个字符串的全排列(递归)

代码语言:javascript
复制
void perm(string str, int start) {
	if (start == str.size() - 1) {
		cout << str << endl;
		return ;
	} else {
		for (int i = start; i < str.size(); i++) {
			swap(str[i], str[start]);
			perm(str, start + 1);
			swap(str[i], str[start]);
		}
	}
}

求一个字符串的所有子串

代码语言:javascript
复制
void printAllSon(string str) {
	for (int i = 0; i < str.size(); i++) {
		for (int j = 0; j < str.size() - i; j++) {
			string son = str.substr(i, j + 1);
			cout << son << endl;
		}
	}
} 

二分查找

代码语言:javascript
复制
//#include <vector>

int binSearchOf(vector<int> &arr, int val) {
	int low = -1, high = arr.size(), mid;
	bool isFind = false;
	
	while (low <= high) {
		mid = (high + low) / 2;
		
		if (arr[mid] < val) {
			low = mid + 1;
		} else if (arr[mid] > val) {
			high = mid - 1;
		} else {
			isFind = true;
			break;
		}
	}
	
	return isFind ? mid : -1;
}

判断闰年

代码语言:javascript
复制
bool isLeap(int year) {
	bool isRight = true;
	
	if (year % 4 != 0) {
		isRight = false;
	} 
	if (year % 100 == 0 && year % 400 != 0) {
		isRight = false;
	}
	
	return isRight;
}

将字符串中包含的某个字符全部替换为新字符

代码语言:javascript
复制
void updateChTo(string &str, char oldCh, char newCh) {
	int pos;
	string goal(1, newCh);
	
	pos = str.find(oldCh);
	while (pos != str.npos) {
		str.replace(pos, 1, goal);
		pos = str.find(oldCh);
	}
}

持续更新。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档