다트에서 가장 긴 공통 접두사 솔루션
9645 단어 programmingleetcodedart
질문 - 어려움 - 쉬움
문자열 배열 중에서 가장 긴 공통 접두사 문자열을 찾는 함수를 작성하십시오.
공통 접두사가 없으면 빈 문자열 ""을 반환합니다.
예 1:
입력: 문자열 = ["꽃","흐름","비행"]
출력: "fl"
예 2:
입력: 문자열 = ["개","raceCar","자동차"]
출력: ""
설명: 입력 문자열 사이에 공통 접두어가 없습니다.
제약:
1 <= 문자열 길이 <= 200
0 <= 문자열[i].길이 <= 200
Strings[i]는 영문 소문자로만 구성됩니다.
이론적 설명
알림:-
두 솔루션 모두 완벽하지만 첫 번째 솔루션의 문제는 실행하는 데 너무 많은 시간이 걸린다는 것입니다. 시간 초과 오류로 끝납니다.
하지만
두 번째 솔루션은 매력처럼 작동합니다.
class A {
// Not Working - Horizontal Scan
String longestCommonPrefix(List<String> strs) {
// Checking if the list is empty
if (strs.length == 0 || strs.isEmpty || strs.length == '') return "";
// Storing the first index value in a variable
String prefix = strs[0];
// looping the whole length of list inside the list
// like how many strings are available
for (var i = 0; i < strs.length; i++) {
// storing the whole list in a variable
String c = strs[i];
if (c.length == 0 || prefix == "") return "";
// setting the first index starting point in subString 0 is first string
// AND entire length of the remaining list
prefix = prefix.substring(0, min(prefix.length, c.length));
for (var j = 0; j < c.length && j < prefix.length; j++) {
if (c[j] != prefix[j]) {
prefix = prefix.substring(0, j);
break;
}
}
}
return prefix;
}
}
class B {
// Vertical scan -Working
String longestCommonPrefix(List<String> strs) {
if (strs.length == 0 || strs.isEmpty || strs.length == '') return "";
// looping through the length of list
for (int i = 0; i < strs[0].length; i++) {
// storing the value of first index and the other strings
String c = strs[0][i];
// looping again the entire length without index
for (int j = 1; j < strs.length; j++) {
// if the the length is same as the length of the above loop
//OR indexes of the list is not same as above
if (i == strs[j].length || strs[j][i] != c)
// returning the first index and subString starting
// from first index and the remaining index
return strs[0].substring(0, i);
}
}
return strs[0];
}
}
런타임: 426ms, Longest Common Prefix에 대한 Dart 온라인 제출의 100.00%보다 빠름.
메모리 사용량: 141.9MB, Longest Common Prefix에 대한 Dart 온라인 제출물의 100.00% 미만.
Reference
이 문제에 관하여(다트에서 가장 긴 공통 접두사 솔루션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ayoubzulfiqar/longest-common-prefix-solution-in-dart-4k6j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)