用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;
//要计算字符
int countChar(string st){
   int size = st.length();
   if (size <= 2){
      return size;
   }
   int result = 2;
   //遍历字符串
   for (int i = 1; i < size - 1; i++){
      //将计数加1
      //和下一个字符相同
      if (st[i - 1] == st[i + 1]){
         result++;
      }
   }
   //返回结果
  返回结果;
}
int main(){
   string st = "poiot";
   cout <<"count is " <<countChar(st);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出

count is 3