Doby's Lab

최근 유용하게 쓰는 함수들 C++로 구현해놓은 거 본문

PS/Study Note

최근 유용하게 쓰는 함수들 C++로 구현해놓은 거

도비(Doby) 2021. 11. 9. 06:37

[문자열 더하기]

string strSum(string a, string b) {
	reverse(a.begin(), a.end());
	reverse(b.begin(), b.end());

	while (a.length() > b.length()) {
		b += '0';
	}
	while (a.length() < b.length()) {
		a += '0';
	}

	int alone;
	int carry = 0;
	string result;
	for (int i = 0; i < a.length(); i++) {
		alone = ((a[i] - '0') + (b[i] - '0') + carry) % 10;
		result += to_string(alone);
		carry = ((a[i] - '0') + (b[i] - '0') + carry) / 10;
	}
	if (carry > 0) {
		result += to_string(carry);
	}

	reverse(result.begin(), result.end());
	return result;
}

[팰린드롬인지 확인하기 (문자열)]

bool isRight(string temp) {
	if (temp.size() == 1) {
		return 1;
	}

	stack<char> s;
	if (temp.size() % 2 == 0) {
		for (int i = 0; i < (temp.size() / 2); i++) {
			s.push(temp[i]);
		}
		for (int i = temp.size() / 2; i < temp.size(); i++) {
			if (s.top() == temp[i]) {
				s.pop();
			}
			else {
				return 0;
			}
		}
		return 1;
	}
	else {
		for (int i = 0; i < (temp.size() / 2); i++) {
			s.push(temp[i]);
		}
		for (int i = (temp.size() / 2) + 1; i < temp.size(); i++) {
			if (s.top() == temp[i]) {
				s.pop();
			}
			else {
				return 0;
			}
		}
		return 1;
	}
}
728x90