Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับอักขระที่มีเพื่อนบ้านเหมือนกันใน 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

  • คำนวณความยาวของสตริง str โดยใช้ฟังก์ชัน length() ที่จะคืนค่าจำนวนเต็มตามจำนวนตัวอักษรในสตริงรวมทั้งช่องว่าง

  • หากความยาวของสตริงน้อยกว่าหรือเท่ากับ 2 ให้คืนค่าการนับเป็นความยาวของสตริงเพราะจะถูกนับทั้งหมด

  • หากความยาวของสตริงมากกว่า 2 ให้เริ่มต้นการนับด้วย 2

  • ตอนนี้ เริ่มลูปด้วย i ถึง 1 จนกว่า i จะน้อยกว่า (ยาว-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