ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่จะแปลงสตริงที่กำหนดเพื่อให้มีเฉพาะอักขระที่แตกต่างกันเท่านั้น
สำหรับสิ่งนี้เราจะได้รับสตริง งานของเราคือสำรวจผ่านสตริงและแทนที่อักขระที่เกิดซ้ำทั้งหมดด้วยอักขระสุ่มใดๆ ที่ยังไม่มีอยู่ในสตริง
ตัวอย่าง
#include<bits/stdc++.h> using namespace std; //collecting the distinct characters //in the string int calculate_zero(int i, int occurrences[]){ while (i < 26) { //if it is present only once if (occurrences[i] == 0) return i; i++; } //if all are doubles or more return -1; } //printing the modified string string print_modified(string str) { int n = str.length(); //if conversion //not possible if (n > 26) return "-1"; string ch = str; int i, occurrences[26] = {0}; //counting the occurrences for (i = 0; i < n; i++) occurrences[ch[i] - 'a']++; int index = calculate_zero(0, occurrences); for (i = 0; i < n; i++) { //replacing the character if (occurrences[ch[i] - 'a'] > 1) { occurrences[ch[i] - 'a']--; ch[i] = (char)('a' + index); occurrences[index] = 1; //moving to the next character index = calculate_zero(index + 1, occurrences); } } cout << ch << endl; } int main() { string str = "tutorialspoint"; print_modified(str); }
ผลลัพธ์
bucdrealspoint