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

รหัส C++ เช็คสตริงว่าหลากหลายหรือไม่


สมมติว่าเรามีสตริง S ที่มีอักษรตัวพิมพ์เล็ก n ตัว สตริงจะเรียกว่าหลากหลายถ้ามีตัวอักษรต่อเนื่องกันของตัวอักษรภาษาอังกฤษและแต่ละตัวอักษรเกิดขึ้นเพียงครั้งเดียว (ตัวอักษร 'a' และ 'z' ไม่อยู่ติดกัน) ก็ต้องดูกันอีกทีว่ามีความหลากหลายหรือไม่

ดังนั้น หากอินพุตเป็น S ="fced" เอาต์พุตจะเป็น True

ขั้นตอน

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

sort the array S
flag := 1
for initialize i := 1, when i < size of S and flag is non-zero,
update (increase i by 1), do:
   if S[i] - S[i - 1] is not equal to 1, then:
      flag := 0
return (if flag is non-zero, then true, otherwise false)

ตัวอย่าง

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

#include <bits/stdc++.h>
using namespace std;
bool solve(string S){
   sort(S.begin(), S.end());
   int flag = 1;
   for (int i = 1; i < S.size() && flag; i++)
      if (S[i] - S[i - 1] != 1)
         flag = 0;
   return flag ? true : false;
}
int main(){
   string S = "fced";
   cout << solve(S) << endl;
}

อินพุต

"fced"

ผลลัพธ์

1