找字典碼最小的字符串c++

以下是使用C++編寫的代碼,用於找到字典碼最小的字元串:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    string str;
    cout << "請輸入一個字元串:";
    getline(cin, str);

    // 初始化最小字典碼為無窮大
    int minDictCode = LLONG_MAX;

    // 遍歷字元串中的每個字元,計算字典碼並更新最小字典碼
    for (char c : str) {
        int dictCode = 0;
        // 判斷字元是否為小寫字母或數字
        if (islower(c) || isdigit(c)) {
            dictCode += c - 'a' + 1; // 假設 'a' 的字典碼為 1
        } else {
            dictCode += c - 'A' + 26; // 假設 'A' 的字典碼為 26
        }
        minDictCode = min(minDictCode, dictCode);
    }

    // 輸出最小字典碼對應的字元串
    cout << "字典碼最小的字元串為:" << str[minDictCode - 1] << endl;

    return 0;
}

該代碼首先要求用戶輸入一個字元串,然後遍歷字元串中的每個字元,根據字元的類型計算其字典碼,並更新最小字典碼。最後,輸出最小字典碼對應的字元串。請注意,代碼中使用了islower()isdigit()函式來判斷字元的類型,並將字元與字母和數字的編碼進行了特殊處理。這是因為對於一些特殊字元(如空格、標點符號等),它們的編碼可能會對字典碼的計算產生影響。