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