참조 - 너 한테 위 https://stackoverflow.com/a/742047/161243URL 단축 알고리즘 - 인터뷰
우리는 데이터를 저장하는 DB를 사용하는 것이 말했다. 이제 면접관이 DB를 사용할 수 없다고 말하면됩니다.
st_short_url* hashTable[N];
이제 우리는 때마다 또는 base62로 변환됩니다 난수 생성 된 ID를 증가되는 int id
을 가질 수있다 - 그런 다음 해시 테이블을
struct st_short_url{
char * short_url;
char * url;
}
: 그런 경우에 우리는 stucture을 가질 수 있습니다.
문제는 내가 볼 :
을 -이 과정이 해지되면 내가 int id
의 트랙 및 RAM에서 전체 해시 테이블을 잃게됩니다. 그래서 계속 보존되도록 hashTable을 디스크에 다시 작성합니까? 그렇다면 B- 트리가 사용됩니까? 또한 id도 디스크에 작성해야합니다.
P. 디스크에 Hashtable + 쓰기는 Database이지만, DBMS를 사용할 수 없다면 어떻게해야합니까? 내 구현을 생각해 내야 할 때 어떻게해야합니까?
생각하십시오 ...
또 다른 질문 : 일반적으로
, 우리는 URL 단축 무한 리디렉션을 처리하는 방법은?
데이터베이스에 해시 테이블을 더한 후 디스크에 쓰는 방법은 무엇입니까? – wallyk
디스크에 해시 테이블을 작성하는 것은 기존 데이터베이스 솔루션 대신 데이터베이스 시스템을 직접 작성한다는 점을 제외하면 다른 데이터베이스 솔루션과 다를 바가 없습니다. –
그렇습니다.하지만 DBMS를 사용할 수 없다면 어떻게 될까요? 내 구현을 생각해 내야 할 때 어떻게해야합니까? –