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;
}
}