WARush

SRMの結果とか、解けた問題のコードを書いていきます

SRM583 Div2 Easy "SwappingDigits"

問題

http://community.topcoder.com/stat?c=problem_statement&pm=12609

String numが与えられる。この文字列は数字で構成された(巨大になりえる)正の整数である。例えば。num="1147"は整数の1147を意味している。numは0で始まることはない。

あなたはこの与えられた数値の、数字のペア1つをスワップすることができる。言い換えれば、あなたは異なるインデックスiとjを選び、num[i]とnum[j]をスワップすることができる。ここで、元の数値を変更しないこともできることに注意せよ。新たな文字列は再び正の整数を意味するものとなっていなくてはならない。つまり、0で始まる数値となっていてはならない。

numが最小となるようスワップしたときの、その値を返せ。

制約

2 <= numの長さ <= 50



考えた事

総当りでやるだけ



ソースコード

class SwappingDigits {
public:

    string minNumber(string num){
        int n = num.length();

        string best = num;

        for( int i = 0; i < n; i++ ){
            for( int j = i + 1; j < n; j++ ){
                string copy = num;
                char t = copy[i];
                copy[i] = copy[j];
                copy[j] = t;
                if( copy[0] != '0' && copy < best ){
                    best = copy;
                }
            }
        }
        
        return best;
    }
    
};