讨论/题目交流/🏆 第 154 场力扣中秋周赛/
🏆 第 154 场力扣中秋周赛

力扣的扣友们中秋快乐🥮,欢迎前来参加本场周赛,小伙伴们可以在这里交流分享参赛心得以及体验。

image.png

展开讨论
力扣 (LeetCode)发起于 2019-09-15
最近编辑于 2019-09-15

我真菜、、、第四题看都没来得及看

/*
5189. “气球” 的最大数量
*/
int maxNumberOfBalloons(string text) {
    int count[5];
    for (int i = 0; i < 5; i++) {
	    count[i] = 0;
    }
	for (char i : text) {
		switch (i) {
		case 'a':
			count[0]++;
			break;
		case 'b':
			count[1]++;
			break;
		case 'l':
			count[2]++;
			break;
		case 'o':
			count[3]++;
			break;
		case 'n':
			count[4]++;
			break;
		default:
			break;
		}
	}
	count[2] /= 2;
	count[3] /= 2;
	int res = INT_MAX;
	for (int i = 0; i < 5; i++) {
		res = min(res, count[i]);
	}
	return res;
}
/*
5190. 反转每对括号间的子串
*/
string reverseParentheses(string s) {
	stack<char> myStack;
	for (char i : s) {
		if (i == ')') {
			string temp = "";
			while (myStack.top() != '(') {
				temp = temp + myStack.top();
				myStack.pop();
			}
			myStack.pop();
			for (char j : temp) {
				myStack.push(j);
			}
		}
		else {
			myStack.push(i);
		}
	}
	string res = "";
	while (!myStack.empty()) {
		res = res + myStack.top();
		myStack.pop();
	}
	reverse(res.begin(), res.end());
	return res;
}
/*
5191. K 次串联后最大子数组之和
*/
int kConcatenationMaxSum(vector<int>& arr, int k) {
	int len = arr.size();
	int sum = 0;
	int sum2 = 0;
	int res = INT_MIN;
	for (int i = 0; i < len * 2; i++) {
		if (i < len)sum += arr[i];
		sum2 += arr[i % len];
		res = max(res, sum2);
		if (sum2 < 1) {
			sum2 = 0;
			continue;
		}
	}
	if (sum > 0) {			
		for (int i = 2; i < k; i++) {
			res += sum;
			res %= 1000000007;
		}
	}
	return res < 0 ? 0 : res;
}
3
展开全部 10 讨论