全部评论
第三题60怎么破
同样85.75.。。。楼主怎么知道是数组越界的原因,我这没提示这个原因。。
我用go直接傻眼了好吧
第三题我开始也是0.8.。后来发现判断条件写错了。。 大于等于S就可以写成大于S了。。改了就AC了 顺便吐槽一下这样的代码题没啥区分度啊。。。
不会c++真的哭了
啊!哪里写着呢
第三题要先判断长度小于等于4直接输出0,就可以AC了,可以看我帖子
逐个扫,碰到 “:”记录位置,并且记录个数,碰到"#"或者到字符串末尾就代表获得了一个可能的KV串,然后判断 “:“ 的个数是否为1,KV串长度是否为空,就行了。不过我昨天只判断了V串是否为空,忘记判断K串了,竟然也AC了。。看到你这个问题再看了遍代码才发现的。。贴下代码 #include <iostream>
#include <vector>
using namespace std;
int main()
{
char pd;
char vd;
string str;
cin >> pd >> vd >> str;
vector<pair<string, string>> kv;
for (int i = 0; i < str.size();) {
int start = i;
int vd_pos = -1;
int vd_count = 0;
int j = i;
for (; j < str.size(); ++j) {
if (str[j] == vd) {
vd_pos = j;
++vd_count;
} else if (str[j] == pd) {
break;
}
}
if (vd_pos > start && j - 1 > vd_pos && vd_count == 1) {
auto key = str.substr(start, vd_pos-start);
auto value = str.substr(vd_pos + 1, j - 1-vd_pos);
kv.emplace_back(key, value);
}
i = j + 1;
}
cout << kv.size() << endl;
for (int i = 0; i < kv.size(); ++i) {
cout << kv[i].first << " " << kv[i].second << endl;
}
}
相关推荐
01-27 00:39
山东管理学院 嵌入式软件开发 点赞 评论 收藏
分享