검 지 offer - 문자열 에서 처음으로 나타 난 문 자 를 찾 습 니 다. (해시 직접 주소 지정 법)

1205 단어
해시 표 - 직접 주소 지정 법의 응용
해시 표 (Hash table, 산 목록 이 라 고도 함) 는 키 코드 값 에 따라 직접 방문 하 는 데이터 구조 입 니 다.즉, 키 코드 값 을 표 의 한 위치 에 비 추어 기록 에 접근 함으로써 검색 속 도 를 빠르게 하 는 것 이다.
직접 주소 법 - 키 워드 를 가 져 오 는 선형 함 수 는 해시 주소 이 고 Hash (key) = key 또는 Hash (key) = A * key + B, A 와 B 는 두 상수 입 니 다.
검 지 offer 면접 문제: 문자열 에서 처음으로 나타 난 문 자 를 찾 습 니 다.
"test.cpp"
<strong><span style="font-size:18px;">#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#include <assert.h>

char FindFirstOneChar(char* str)
{
	assert(str);
	int tables[256] = {0};//Ascii   256   
	char* tmp = str;

	while (*tmp != '\0')
	{
		//  unsigned char   
		tables[(unsigned char)*tmp]++;
		tmp++;

		//       
		//tables[(unsigned char)*tmp++]++;
	}
	tmp = str;
	while (*tmp != '\0')
	{
		//  unsigned char   
		if (tables[(unsigned char)*tmp] == 1)
		{
			return *tmp;
		} 
		else
		{
			tmp++;
		}
	}
}

//                   
void Test()
{
	char* str = "hhddadeechrhg";
	char ret = FindFirstOneChar(str);
	cout<<ret<<endl;
}

int main()
{
	Test();
	system("pause");
	return 0;
}</span></strong>

좋은 웹페이지 즐겨찾기