1. 程式人生 > >華為機試題[2017.8.23]

華為機試題[2017.8.23]

題目:給定一個正整數,給出消除重複數字以後最大的整數

輸入描述:

正整數,注意考慮長整數

輸出描述:

消除重複數字以後的最大整數

下面的好像有問題,當輸入是4325432時結果不對

#include<iostream>
#include<string>
using namespace std;
int main() {
	string s;
	while (cin >> s) {
		string res;
		res = s[0];
		for (int i = 1; i<s.size(); i++) {
			if (res.find(s[i]) == string::npos) {
				res += s[i];
			}
			else {
				int t = res.find(s[i]);
				if ((t + 1)<res.size()) {
					if (res[t]<res[t + 1]) {
						res.erase(t, 1);
						res += s[i];
					}
				}
			}
		}
		cout << res << endl;
	}
	return 0;
}