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

ค้นหาอักขระพิเศษของสองสตริงใน C++ Program


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีค้นหาอักขระที่แตกต่างจากสองสตริงที่ระบุ มาดูตัวอย่างกัน

ป้อนข้อมูล

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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น