แนวคิด
สมมติว่ามีสตริง s ต้องนับจำนวน segments ในสตริง โดย segment ถูกกำหนดให้เป็นลำดับตัวอักษรติดต่อกัน (ไม่มี whitespace)
เช่น ถ้าอินพุตคือ "Hello, I love programming" ผลลัพธ์คือ 4 เพราะมี 4 segments
วิธีแก้:
- n := 0
- วนลูป i := 0 ถึงขนาด s - 1:
- ถ้า s[i] ไม่ใช่ white space: เพิ่ม n ขึ้น 1
- while (i < ขนาด s และ s[i] ไม่ใช่ white space): เพิ่ม 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