AtCoder Beginner Contest 107 B - Grid Compression

提出へのリンク

なんか汚いな…と思って提出して解説読んだら案の定エレガントで、削るんじゃなくて残す行と列マークして交差する文字だけ出力すれば良かった。

書いてるときに basic_string::erase で一瞬ハマった。

for (auto &l: ans) {
  l.erase(j,1);
} 

ans は vector<string> です。range-for で参照すれば要素が変更できるのはいいとして、 erase は引数が int 1つだけだとそれ以降の要素が全部消えちゃうんですよね。何個消すか指定する必要がある。普段イテレータで指定してたから気づかなかった。

参考: cpprefjp basic_string::erase