ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีค้นหาอักขระที่ไม่ซ้ำตัวแรกในสตริงที่กำหนด มาดูตัวอย่างกัน
ป้อนข้อมูล −บทช่วยสอน
ผลผลิต −u
มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นสตริง
-
เริ่มต้นถ่านแผนที่และอาร์เรย์เพื่อเก็บความถี่ของอักขระในสตริง
-
วนซ้ำบนสตริง
-
ค้นหาความถี่ของตัวละครแต่ละตัวและเก็บไว้ในแผนที่
-
เก็บดัชนีตัวละครไว้ด้วย
-
วนซ้ำความถี่อักขระในแผนที่
-
พิมพ์อักขระตัวแรกด้วยความถี่ 1.
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h>
#include <map>
using namespace std;
void findDistinctCharacters(string random_string) {
// initializing char count
map<char, int[2]> chars;
// iterating over the string
for (int i = 0; i < random_string.size(); ++i){
chars[random_string[i]][0]++;
chars[random_string[i]][1] = i;
}
int char_index = INT_MAX;
// printing the first char with frequency 1
for (auto item: chars) {
// checking the frequency
if (item.second[0] == 1) {
char_index = min(char_index, item.second[1]);
}
}
// printing the first char with frequency 1
cout << random_string[char_index] << u;
}
int main() {
findDistinctCharacters("tutorialspoint");
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
u
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น