프로 그래 밍 의 아름다움: 두 문자열 의 싱크로 율 계산 - 동적 계획 실현
public class StringSimilar {
public int fun(String source,String target){
int i,j;
int[][] d = new int[source.length()+1][target.length()+1];
for(i=1;i<source.length()+1;i++){/* */
d[i][0]=i;
}
for(j=1;j<target.length()+1;j++){/* */
d[0][j]=j;
}
for(i=1;i<source.length()+1;i++){/* */
for(j=1;j<target.length()+1;j++){
if(source.substring(i-1, i).equals(target.substring(j-1, j))){
d[i][j]=d[i-1][j-1];/*source i target j */
}else{/* */
d[i][j]=min(d[i][j-1]+1,d[i-1][j]+1,d[i-1][j-1]+1);
}
}
}
return d[source.length()][target.length()];
}
private int min(int i, int j, int k) {
int min = i<j?i:j;
min = min<k?min:k;
return min;
}
public static void main(String[] args) {
StringSimilar ss = new StringSimilar();
System.out.println(ss.fun("SNOWY", "SUNNY"));//3
System.out.println(ss.fun("a", "b"));//1
System.out.println(ss.fun("abdd", "aebdd"));//1
System.out.println(ss.fun("travelling", "traveling"));//1
}
}
요약:
주해: [1] 최 우선 서브 구조: 다단 계 결정 문제 에 대해 각 단계 의 최 우선 결정 서열 의 서브 서열 도 최 우선 이 고 결정 서열 이 '무 후 효성' 을 가지 면 이 결정 방법 을 최 우선 서브 구조 로 이해 할 수 있다. 【 2 】 무 후 효성: 동태 기획 법의 최 우선 해 는 보통 일련의 최 우선 결정 으로 구 성 된 결정 서열 이다. 최 우선 서브 구 조 는 바로 이런 최 우선 결정 서열 중의 하위 서열 이다. 각 하위 서열 에 대해 최 우선 결정 을 하면 새로운 최 우선 결정 (하위) 서열 이 생 길 수 있다. 만약 에 특정한 결정 이 현재 최 우선 결정 하위 서열 의 영향 만 받는다 면현재 의 결정 이 발생 할 수 있 는 새로운 최 우선 결정 서브 시퀀스 의 영향 을 받 지 않 으 면 이 최 우선 결정 이 후 효성 이 없 음 을 이해 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux Shell 프로 그래 밍 - 텍스트 처리 grep, sed사용자 가 지정 한 '모드' 에 따라 대상 텍스트 를 일치 하 게 검사 하고 일치 하 는 줄 을 인쇄 합 니 다. ##포함 되 지 않 음, 역방향 일치 \ ##키워드 앞 뒤 가 맞지 않 고 키워드 만 일치 합 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.