C++中统计具有相同相邻字符的字符个数


给定一个字符串,例如str,任务是计算字符串str中具有相同相邻字符的字符个数,这包括字符左右两侧的字符。在这种情况下,字符串的第一个和最后一个字符始终被考虑在内,因为它们只有一个相邻字符。

例如

Input − string str = “poiot”
Output − count is 3

说明 − 在给定的字符串中,字符p、t和i具有相同的相邻字符,因此计数将增加到3。

Input − string str = “nitihig”
Output − count is 4

说明 − 在给定的字符串中,字符n、t、h和g具有相同的相邻字符,因此计数将增加到4。

下面程序中使用的算法如下

  • 将字符串输入到变量中,例如str

  • 使用length()函数计算字符串str的长度,该函数将根据字符串中字母的数量(包括空格)返回一个整数值。

  • 如果字符串的长度小于或等于2,则返回字符串长度作为计数,因为所有字符都将被计算。

  • 如果字符串长度大于2,则将计数初始化为2。

  • 现在,从i=1开始循环,直到i小于(length-1)

  • 在循环内,检查如果(str[i-1] = str[i+1]),则计数增加1

  • 现在返回计数的总值

  • 打印结果。

示例

 在线演示

#include <iostream>
using namespace std;
// To count the characters
int countChar(string st){
   int size = st.length();
   if (size <= 2){
      return size;
   }
   int result = 2;
   // Traverse the string
   for (int i = 1; i < size - 1; i++){
      // Increment the count by 1 if the previous
      // and next character is same
      if (st[i - 1] == st[i + 1]){
         result++;
      }
   }
   // Return result
   return result;
}
int main(){
   string st = "poiot";
   cout <<"count is " <<countChar(st);
   return 0;
}

输出

如果运行上述代码,它将生成以下输出

count is 3

更新于:2020年5月15日

193 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告