ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีค้นหาอักขระที่แตกต่างจากสองสตริงที่ระบุ มาดูตัวอย่างกัน
ป้อนข้อมูล
string_one = "tutorialspoint" string_two = "tutorialsworld"
ผลผลิต
d n p w
เราจะใช้การแฮชในการแก้ปัญหา มีประสิทธิภาพมากกว่าการเขียนลูปซ้อนกันสองวง
มาดูขั้นตอนการแก้โปรแกรมกัน
-
เริ่มต้นสองสตริงด้วยค่าสุ่มบางค่า
-
เริ่มต้นแผนที่เป็น map
chars. -
วนซ้ำสตริงแรกและแทรกอักขระแต่ละตัวลงในแผนที่ด้วยค่า 1
-
ตอนนี้ วนซ้ำในสตริงที่สอง
-
ตรวจสอบว่ามีอักขระอยู่แล้วหรือไม่
-
ถ้ามี ให้ระบุ 0
-
หากไม่มีให้ใส่อักขระที่มีค่า 1
-
-
วนซ้ำบนแผนที่และพิมพ์อักขระด้วยค่า 1
ตัวอย่าง
ดูโค้ดด้านล่าง
#include <bits/stdc++.h>
#include <map>
using namespace std;
void findDistinctCharacters(string one, string two){
// initializing char presence in string
map<char, int> chars;
// iterating over the first string
for (int i = 0; i < one.size(); ++i){
// inserting every character into map
chars.insert({one[i], 1});
}
// iterating over the second string
for (int i = 0; i < two.size(); ++i){
// checking whether the current char in string or not
if (chars.count(two[i])) {
// assigning 0 for common chars
chars.find(two[i])->second = 0;
}
else {
// insering new chars
chars.insert({two[i], 1});
}
}
// printing the distinct characters
for (auto item: chars){
// checking the presence
if (item.second == 1) {
// printing the distinct char
cout << item.first << " ";
}
}
}
int main(){
string one = "tutorialspoint";
string two = "tutorialsworld";
findDistinctCharacters(one, two);
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
d n p w
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น