我们给了一个带有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