您的位置:首页 > 运维架构

TopCoder SRM 644 Div2 Problem 500 - LostCharacter (贪心)

2015-01-03 15:08 344 查看


题意

给出一些字符串数组,可能包含有?。现在要求输出每个字符串在按字典序排序后的最靠前的位置。


思路

一开始看不懂题目,以为是要一起考虑的。原来是每个字符串分开考虑。

因为数据量很小,所以直接无脑暴力。

对于每个字符串,把它里面的?都改成a,然后把其他的字符串里的?都改成z,这样就能使位置尽量靠前。

顺便吐槽一下,连了一个上午加半个下午的TC,终于给连上了。


代码

class LostCharacter {

public:

vector<int> getmins(vector<string> str) {

vector<int> ans;

vector<string> tmp;

tmp = str;

if (str.empty()) return ans;

for (int i = 0; i < str.size(); i++)

{

string target = str[i];

for (int j = 0; j < target.size(); j++)

if (target[j] == '?') target[j] = str[i][j] = 'a';

for (int j = 0; j < str.size(); j++)

    {

if (i == j) continue;

for (int k = 0; k < str[j].size(); k++)

if (str[j][k] == '?') str[j][k] = 'z';

}

sort(str.begin(), str.end());

ans.push_back(lower_bound(str.begin(), str.end(), target) - str.begin());

str = tmp;

}

return ans;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM