Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm các ký tự có cùng hàng xóm trong C ++

Chúng tôi được cung cấp một chuỗi với, giả sử, str và nhiệm vụ là tính toán số lượng ký tự trong một chuỗi str có cùng các hàng xóm và điều đó sẽ bao gồm cả phía bên trái và bên phải của một ký tự trong một chuỗi. Ngoài ra, trong trường hợp này, ký tự đầu tiên và ký tự cuối cùng trong một chuỗi sẽ luôn được coi là chúng chỉ có một ký tự liền kề.

Ví dụ

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

Giải thích - Trong chuỗi ký tự p, t và i đã cho có cùng hàng xóm nên số lượng sẽ được tăng lên 3.

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

Giải thích - Trong chuỗi ký tự đã cho, n, t, h và g có cùng hàng xóm nên số lượng sẽ được tăng lên 4.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Nhập chuỗi vào một biến, giả sử str

  • Tính độ dài của chuỗi str bằng cách sử dụng hàm length () sẽ trả về một giá trị nguyên theo số lượng ký tự trong chuỗi bao gồm cả khoảng trắng.

  • Nếu độ dài của chuỗi nhỏ hơn hoặc bằng 2 thì trả về số đếm là độ dài của chuỗi vì tất cả chúng sẽ được tính.

  • Nếu độ dài của chuỗi lớn hơn 2, hãy khởi tạo số đếm bằng 2.

  • Bây giờ, bắt đầu vòng lặp với i đến 1 cho đến khi tôi nhỏ hơn (length-1)

  • Bên trong vòng lặp, hãy kiểm tra xem (str [i-1] =str [i + 1]) rồi tăng số lượng lên 1

  • Bây giờ trả về tổng giá trị của số lượng

  • In kết quả.

Ví dụ

#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;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau

Số lượng
count is 3