BF 알고리즘

2055 단어 데이터 구조
주 문자열 S 에서 첫 번 째 pos 문자 가 나타 나 기 시작 한 위 치 를 되 돌려 줍 니 다.존재 하지 않 으 면 0 으로 돌아 갑 니 다.
#include
const int maxn = 1000;
#pragma execution_character_set("utf-8")
using namespace std;
//typedef struct{
//	char ch[maxn+1];
//	int length;
//}SString;
 
int Index_BF(string s,string t,int pos){
	int i = pos-1;
	int j = 0;
	while(i=t.length())
		return i-t.length()+1;
	else
		return 0;
}
 
int main(){
	string s,t;
	int pos;
	int status;
	cout<>s;
	cout<>t;
	cout<>pos;
	status = Index_BF(s,t,pos);
	if(status)
		cout<

위 에 서 는 c + + 를 사용 하여 직접 정 의 했 습 니 다. 다음은 문자열 의 순서 저장 형식 을 보 겠 습 니 다.
#include
const int maxn = 1000;
#pragma execution_character_set("utf-8")
using namespace std;
typedef struct{
	char ch[maxn+1];
	int length;
}SString;

int Index_BF(SString s,SString t,int pos){
	int i = pos-1;
	int j = 0;
	while(i=t.length)
		return i-t.length+1;
	else
		return 0;
}

int main(){
	SString s,t;
	int z=1;
	int pos;
	int status;
	cout<>s.length;
	cout<>s.ch;
	cout<>t.length;
	cout<>t.ch;
	cout<>pos;
	status = Index_BF(s,t,pos);
	if(status)
		cout<

물론, 당신 도 직렬 저장 의 위 치 를 바 꾸 어 그 로 하여 금 임의의 위치 에서 저장 하 게 할 수 있 습 니 다. 그러면 제 가 c 언어 교과서 (엄 울 민) 의 작성 방법 을 시범 해 보 겠 습 니 다.
#include
const int maxn = 1000;
#pragma execution_character_set("utf-8")
using namespace std;
typedef struct{
	char ch[maxn+1];
	int length;
}SString;
 
int Index_BF(SString s,SString t,int pos){
	int i = pos;
	int j = 1;
	while(i<=s.length && j<=t.length){
		if(s.ch[i] == t.ch[j]){
			i++;
			j++;
		}
		else{
			i = i-j+2;
			j = 1;
		}
	}
	if(j>t.length)
		return i-t.length;
	else
		return 0;
}
 
int main(){
	SString s,t;
	int pos;
	int status;
	cout<>s.length;
	cout<>t.length;
	cout<>pos;
	status = Index_BF(s,t,pos);
	if(status)
		cout<

좋은 웹페이지 즐겨찾기