Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để chuyển đổi chuỗi đã cho để nó chỉ chứa các ký tự riêng biệt.
Đối với điều này, chúng tôi sẽ được cung cấp một chuỗi. Nhiệm vụ của chúng ta là duyệt qua chuỗi và thay thế tất cả các ký tự lặp lại bằng bất kỳ ký tự ngẫu nhiên nào chưa có trong chuỗi.
Ví dụ
#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); }
Đầu ra
bucdrealspoint