สมมติว่าเรามีสตริง 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