C++中,可以使用堆栈来检查字符串中是否存在相同数量的字母'a'和'b'。下面是一个示例代码:
#include <iostream>
#include <stack>
#include <string>
bool checkEqualCount(const std::string& str) {
std::stack<char> charStack;
for (char c : str) {
if (c == 'a' || c == 'b') {
if (charStack.empty()) {
charStack.push(c);
} else if (charStack.top() == c) {
charStack.pop();
} else {
charStack.push(c);
}
}
}
return charStack.empty();
}
int main() {
std::string str = "ababab";
bool result = checkEqualCount(str);
if (result) {
std::cout << "The string has equal count of 'a' and 'b'." << std::endl;
} else {
std::cout << "The string does not have equal count of 'a' and 'b'." << std::endl;
}
return 0;
}
这段代码中,我们使用了一个堆栈(stack)来存储遍历字符串时遇到的字母'a'和'b'。当遇到'a'或'b'时,我们检查堆栈的顶部元素,如果与当前字符相同,则将顶部元素出栈;否则,将当前字符入栈。最后,如果堆栈为空,说明字符串中存在相同数量的字母'a'和'b',返回true;否则,返回false。
这个方法的时间复杂度是O(n),其中n是字符串的长度。
腾讯云相关产品和产品介绍链接地址:
以上是腾讯云提供的一些相关产品,可以根据具体需求选择适合的产品来支持云计算和开发工作。
领取专属 10元无门槛券
手把手带您无忧上云