21xrx.com
2025-03-28 04:26:04 Friday
文章检索 我的文章 写文章
C++如何判断字母是否交替输出“AB”?
2023-07-05 01:25:14 深夜i     15     0
C++ 判断 字母 交替输出 AB

C++中如何判断字母是否交替输出"AB"?这是一个经典的算法问题,在实际开发中也有很多应用场合,例如字符串匹配和密码验证等。

首先,我们需要明确题意:字母是否交替输出"AB"指的是连续输出的两个字母是否分别为"A"和"B"。因此,我们采取的方法是遍历字符串,依次判断每个字符是否符合要求。

下面是一个简单的C++代码实现:

#include <iostream>
#include <string>
using namespace std;
bool IsAlternateAB(string s) {
  for (int i = 0; i < s.length() - 1; i++) {
    if (s[i] == 'A' && s[i + 1] == 'B') {
      i++;  // 如果匹配成功,则跳过下一个字符
    } else if (s[i] == 'B' && s[i + 1] == 'A') {
      i++;  // 如果匹配成功,则跳过下一个字符
    } else
      return false// 如果不匹配
  }
  return true;  // 如果遍历完整个字符串都符合要求,则返回true
}
int main() {
  string s;
  cin >> s;
  if (IsAlternateAB(s))
    cout << "Yes" << endl;
   else
    cout << "No" << endl;
  
  return 0;
}

上述代码中,我们首先定义了一个函数`IsAlternateAB`,它的输入为一个字符串,输出为一个布尔值。在函数中,我们遍历字符串,并依次判断每个字符是否符合要求。

如果当前字符是"A",而下一个字符是"B",或者当前字符是"B",而下一个字符是"A",那么就认为匹配成功,并跳过下一个字符;否则,就返回false。如果这个函数返回true,那么说明整个字符串都符合要求。

在主函数中,我们先读入一个字符串,然后调用`IsAlternateAB`函数判断是否符合要求,最后输出相应的结果。

需要注意的一点是,上述代码只能判断连续的两个字符是否为"A"和"B",而不能判断其中是否插入了其他字符,例如"A1B"、"A2B"等。

除了上述的遍历字符串的方法,我们还可以使用正则表达式来判断字符串是否符合要求。使用正则表达式,代码会更加简洁、易读,可以避免一些手动遍历带来的错误。不过由于正则表达式编写进入门槛比较高,这里就不再赘述了。

  
  

评论区

请求出错了