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
广告