C-merのブログ

ザ・雑記

SRM 518 Div 1 - Problem 250 LargestSubsequence

問題
SRM 518 Div 1 - Problem 250 LargestSubsequence
TopCoder Statistics - Problem Statement

使用言語
C++

問題概要
与えられた文字列から各文字の相対的な順序は変えずに,文字列を抽出し,その中で辞書順で最も大きくなる文字列を返す.

方針
文字列 .*XY.* について,
 X>=YならXは残す
 X所感
・文字列の連結が自然にできるのはありがたい.言語仕様に感謝.

コード

class LargestSubsequence {
    public:
    string getLargest(string s) {
      string ans = "";
      int l = s.length();
      ans += s[l-1];
      for (int i = l-2; i >= 0; i--) {
        if (ans[0] <= s[i]) ans = s[i] + ans;
      }
        return ans;
    }
};