특정 문자 통계 의 두 가지 알고리즘
1885 단어 알고리즘
You're given strings J representing the types of stones that are jewels, and S representing the stones you have. Each character in S is a type of stone you have. You want to know how many of the stones you have are also jewels.
The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so "a" is considered a different type of stone from "A".
Note: • S and J will consist of letters and have length at most 50. • The characters in J are distinct.
직접 찾기
//max_n1 J ,max_n2 S
int JewelsNum_1(const char *J,int max_n1,const char *S,int max_n2)
{
int i = 0,j,num=0;
while(S[i]!='\0' && i
해시 찾기:
int JewelsNum_2(const char *J,int max_n1,const char *S,int max_n2)
{
int i = 0,num=0,all[52] = {
0
};
char temp = '\0';
temp = S[i];
while(temp!='\0' && i='a' && temp<='z')
{
all[temp-'a']++;
}
else if(temp>='A' && temp<='Z')
{
all[temp-'A'+26]++;
}
else;
i++;
temp = S[i];
}
i = 0;
temp = J[i];
while(temp!='\0' && i='a' && temp<='z')
{
num = num + all[temp-'a'];
}
else if(temp>='A' && temp<='Z')
{
num = num + all[temp-'A'+26];
}
else;
i++;
temp = J[i];
}
return num;
}
요약:
직접 알고리즘 최 악의 경우 시간 복잡 도 는 m * n 이 고 해시 알고리즘 최 악의 경우 시간 복잡 도 는 m + n 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.