2012-10-05 4 views
0

나는 쇠퇴를 찾고 있습니다. 나는 하나를 비교하고 유일성을 얻는 데 필요한 두 개의 문자열을 가지고있다. 예를 들어두 문자열을 비교하여 고유성 백분율을 얻으십시오

:

{ 
String A = "Hello" 
String B = "Hello" 
Uniqueness percent = 0% 
} 

{ 
String A = "Hello friend" 
String B = "Hello mate" 
Uniqueness percent = 50% 
} 

{ 
String A = "Hey" 
String B = "Hello" 
Uniqueness percent = 100% 
} 
+1

두 문자열에 있지만 다른 위치에있는 단어는 어떻게됩니까? 그리고 문자열 중 하나에서 두 번 이상 나타나는 단어는 어떻게됩니까? – fvu

+3

고유성의 기준은 무엇입니까? "Hello friend"vs "Well hello, sir?" 단어별로 나눠 봤니? 구두점은 어떨까요? – Stegrex

+2

다른 사람들이 암시 하듯이 코드를 작성하기 전에 요구 사항을 이해하고 유효성을 검사 한 다음 알고리즘을 설계하는 것이 항상 중요합니다. 그 습관을 습득하면 경력 중에 상상도 할 수없는 시간을 절약 할 수 있습니다. –

답변

0

당신은

http://www.php.net/manual/en/function.similar-text.php

similar_text($string1,$string2,$percentage); 
echo $percentage; 

성능 중요한 솔루션을 찾고 있다면 당신은 (대부분의 경우이 좋은 솔루션입니다) 최적화 된 알고리즘을 사용합니다() similar_text를 사용할 수 있습니다.

여기 있습니다
1

는,이 코드는 내가,이 문자가없는 전체 단어를 문자열을 비교 참조 예를 볼 수 있습니다로, similar_text()는 두 문자열 간의 PHP 함수를 기반으로 다음과 같습니다

<?php 

    if(isset($_REQUEST["str_a"]) && isset($_REQUEST["str_b"])) { 

     $str_a = $_REQUEST["str_a"];  
     $str_b = $_REQUEST["str_b"];  

     function compare_them($str_1, $str_2) { 

      $str_1 = trim(strtolower($str_1)); 
      $str_2 = trim(strtolower($str_2)); 

      similar_text($str_1, $str_2, $percentage); 

      $formated_percents = number_format($percentage); 

      return $formated_percents; 

     } 

     $calculated = compare_them($str_a, $str_b); 

    } 


?> 

<form action="" method="get"> 

    string a: <input type="text" value="" name="str_a" /> 
    <br /> 
    string b: <input type="text" value="" name="str_b" /> 
    <br /> 
    <br /> 
    <input type="submit" value="submit" /> 

</form> 

<h2> 
<?php 

    if(isset($_REQUEST["str_a"]) && isset($_REQUEST["str_b"])) { 

     print "string a = " . $str_a . " <br />string b = " . $str_b . " <br />percents match = " . $calculated . "%"; 

    } 

?> 
</h2> 

하는 라이브 예입니다
http://simplestudio.rs/yard/percent/percent.php

관련 문제