Hatena::Grouptopcoder

TopCoderの問題を解く

解いた問題の一覧表

2009-10-26

OldestOne

| 05:33

問題文, SRM 177

最年長の人の名前を答える。

380.52/500

class OldestOne {
public:
    string oldest(vector <string> data) {
        string oldestName;
        int oldestAge = -1;
        for (int i = 0; i < data.size(); i++) {
            for (int j = 1; j < data[i].length(); j++) {
                if (isdigit(data[i][j])) {
                    int age;
                    sscanf(data[i].substr(j).c_str(), "%d", &age);
                    if (oldestAge < age) {
                        oldestAge = age;
                        oldestName = data[i].substr(0, j);
                    }
                    break;
                }
            }
        }
        string result;
        for (int i = 0; i < oldestName.length(); i++)
            if (isalpha(oldestName[i])) {
                result = oldestName.substr(i);
                break;
            }
        for (int i = result.length()-1; i >= 0; i--)
            if (isalpha(result[i])) {
                result = result.substr(0, i+1);
                break;
            }
        return result;
    }
};

ゲスト



トラックバック - http://topcoder.g.hatena.ne.jp/caligue/20091026