WAK level
获赞
57
粉丝
16
关注
1
看过 TA
8
天津大学
2018
C++
IP属地:北京
暂未填写个人简介
私信
关注
2018-09-14 08:35
已编辑
天津大学 C++
1题 兄弟串 通过交换两个字符能得到的串称为兄弟串,判断两个字符串是否为兄弟串 AC 思路:判断两个字符串中相同位值不同的个数,将相应位置为*,若=2,则符合要求, 若!=2,则排序,若存在至少两个不为*的相同字符,则也符合要求 #include<bits/stdc++.h> using namespace std; int main(){ string a,b; while(cin>>a>>b){ int count = 0; bool flg = false; if(a.size()!=b.size()) cout<<0<&lt...
小精灵201804081755829:class Solution:     def buddyStrings(self, A, B):         """         :type A: str         :type B: str         :rtype: bool         """         if len(A) != len(B):             return False         else:             count = 0             aa=[]             bb=[]             for i in range(len(A)):                 if A[i] != B[i]:                     count += 1                     aa.append(A[i])                     bb.append(B[i])             if count == 2:                 if list(reversed(bb)) == aa:                     return True                 else:                     return False             elif count == 0 and len(set(A)) != len(A):                  return True             else:                 return False #注意考虑 aab  和  aab这种情况也是可以的!两个字符串一样,但是 有重复的字符就可以! if list(reversed(bb)) == aa: 是为了避免 ab和 cd这种情况被判为True
投递搜狐等公司10个岗位 >
0 点赞 评论 收藏
分享
2018-09-07 11:37
已编辑
天津大学 C++
第一题 给定一张包含N个点、N-1条边的无向连通图,节点从1到N编号,每条边的长度均为1。假设你从1号节点出发并打算遍历所有节点,那么总路程至少是多少? 输入 第一行包含一个整数N,1≤N≤100000。 接下来N-1行,每行包含两个整数X和Y,表示X号节点和Y号节点之间有一条边,1≤X,Y≤N。 输出 输出总路程的最小值。 思路:走完所有节点类似于深度优先搜索,也就是说除了最后一条路径外,别的路径都经历了正着走,再返回 的过程,也就是两遍,设最后一条路径为x,总分支数为n-1,总路径=2*(n-1-x)+x=2*n-2-x,当x最大时 总路径最小,所以转化为求多叉树的深度。 ...
fenf:我等渣渣选择先把图存起来再DFS查深度 #include <iostream> using namespace std; int a[10005][10005]={0}; int b[10005]={0}; int len=0; int n=0; int deep=0; int func(int k) {     for(int i=0;i<10005;i++)     {         if(a[k][i]==1 && b[i]==0){             b[i]=1;             len++;             func(i);             if(len>deep)                 deep=len;             len--;         }     }     return 0; } int main() {     int start,end;     cin>>n;     for(int i=0;i<n-1;i++)     {         cin>>start>>end;         a[start][end]=1;     }     b[1]=1;     func(1);     cout<<(n-1)*2-deep; }
投递美团等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务