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

จำนวนเซ็กเมนต์ในสตริงใน C++


สมมติว่าเรามีสตริง s เราต้องนับจำนวนเซ็กเมนต์ในสตริง โดยที่เซกเมนต์ถูกกำหนดให้เป็นลำดับอักขระที่ต่อเนื่องกัน (ไม่มีช่องว่าง)

ดังนั้น หากอินพุตเป็น "สวัสดี ฉันชอบเขียนโปรแกรม" ผลลัพธ์จะเป็น 4 เนื่องจากมี 4 ส่วน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • น :=0

  • สำหรับการเริ่มต้น i :=0 เมื่อ i

    • ถ้า s[i] ไม่เท่ากับช่องว่าง ดังนั้น −

      • (เพิ่มขึ้น n โดย 1)

    • ในขณะที่ (i <ขนาดของ s และ s[i] ไม่เท่ากับช่องว่าง) ทำ −

      • (เพิ่ม i ขึ้น 1)

  • กลับ n

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   int countSegments(string s) {
      int n = 0;
      for(int i = 0; i < s.size(); i++){
         if(s[i] != ' ')
            n++;
         while( i < s.size() && s[i] != ' ')
            i++;
      }
      return n;
   }
};
main(){
   Solution ob;
   cout << (ob.countSegments("Hello, I love programming"));
}

อินพุต

"Hello, I love programming"

ผลลัพธ์

4