今天字节的第三题有谁ac吗,能讲下思路

不就是每对掉一条边【a,b】,就从a开始深度遍历,最后看visited[b]是否为0,如果为0,那么说明这个图已经不连通了。还是我的思路不对啊
全部评论
//我的A题代码 只能过20% #include "bits/stdc++.h" using namespace std; char s[1005]; string ans[10005]; string fun(char *ss) {     int len = strlen(ss);     string now = "";     int k;     for (int i=0; i<len; ++i) {         if (ss[i] >= 'a' && ss[i] <= 'z') {             k = i;             while (ss[k] >= 'a' && ss[k] <= 'z' && k<len) {                 now += ss[k++];             }             i = k-1;             if (i != len-1) now += '_';         }         else {             if (ss[i+1] >='A' && ss[i+1] <= 'Z') {                 k = i;                 while(ss[k] >= 'A' && ss[k] <='Z' && k<len) {                     now += ss[k++] + 32;                 }                 //now.erase(now.end() - 1);                 i = k-1;                 if(i != len-1) now += '_';             }             else {                 k = i;                 now += ss[k++] + 32;                 while(ss[k] >= 'a' && ss[k] <= 'z' && k<len) {                     now += ss[k++];                 }                 i = k-1;                 if(i != len-1) now += '_';             }         }     }     return now; } int main() { //printf("%d %d %d\n", 'A', 'a', 'A'-'a');     int n;     scanf("%d", &n);     for (int i=0; i<n; ++i) {         scanf("%s", s);         ans[i] = fun(s);         //cout<<ans[i]<<endl;     }     for(int i=0; i<n; ++i) {         cout<<ans[i]<<endl;     }     return 0; }
点赞 回复 分享
发布于 2018-10-21 14:15
请问一下A题有什么坑吗?我只能过20% 不知道什么原因
点赞 回复 分享
发布于 2018-10-21 14:14
我直接记录每个点的度, 删除边后对应对点的度-1,过了80%,现在想一想可能是没考虑自环吧
点赞 回复 分享
发布于 2018-10-21 14:13
我写的数组越界。。。
点赞 回复 分享
发布于 2018-10-21 13:48

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务