小精灵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 点赞 评论 收藏
分享
投递迅雷等公司10个岗位 >
0 点赞 评论 收藏
分享
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 点赞 评论 收藏
分享
投递拼多多集团-PDD等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: