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

โค้ด C++ ตรวจสอบสตริงหลากหลายหรือไม่

สมมติว่าเรามีสตริง S ตัวพิมพ์เล็ก n ตัวอักษร สตริงเรียกว่า diverse ถ้ามีตัวอักษรอังกฤษติดกัน และแต่ละตัวอักษรปรากฏครั้งละ 1 ครั้ง (a และ z ไม่ถือติดกัน) ตรวจสอบว่ามัน diverse หรือไม่

เช่น ถ้าอินพุตคือ S = "fced" เอาต์พุตจะเป็น True

ขั้นตอนการแก้ปัญหา

เรียงลำดับ S
flag := 1
for i := 1 ถึง size of S - 1 และ flag:
    if S[i] - S[i-1] != 1:
        flag := 0
return (ถ้า flag แล้ว true มิฉะนั้น 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