Ich muss das größte gemeinsame Präfix von zwei Strings mit CMake finden. Ich habe mit CMake noch nichts darüber gefunden. CMake selbst ist ziemlich begrenzt, so frage ich mich über die beste Vorgehensweise.Größtes gemeinsames Präfix von zwei Strings in CMake
-1
A
Antwort
0
Das Finden des größten gemeinsamen Präfixes erfolgt normalerweise in einer linearen O (n) -Suche, die am Anfang beider Strings beginnt. CMake ermöglicht den Vergleich von Zahlen und Strings mit if command und LESS/GREATER/... Dies ermöglicht die Implementierung der Standardmethode zum Auffinden des größten gemeinsamen Präfixes:
function(largest_common_prefix a b prefix)
# minimum of lengths of both strings
string(LENGTH ${a} len_a)
string(LENGTH ${a} len_b)
if(${len_a} LESS ${len_b})
set(len ${len_a})
else()
set(len ${len_b})
endif()
# iterate over the length
foreach(end RANGE 1 ${len})
# get substrings
string(SUBSTRING ${a} 0 ${end} sub_a)
string(SUBSTRING ${b} 0 ${end} sub_b)
# if equal store, otherwise break
if (${sub_a} STREQUAL ${sub_b})
set(${prefix} ${sub_a} PARENT_SCOPE)
else()
break()
endif()
endforeach()
endfunction()
Verwandte Themen
- 1. Längstes gemeinsames Suffix-Präfix
- 2. Größtes Element in zwei Arrays
- 3. Cmake erstellen ein gemeinsames Objekt
- 4. REST API mit koa2. Gemeinsames Präfix für mehrere Router
- 5. Verwenden von Compiler-Präfix-Befehlen mit CMake (distcc, ccache)
- 6. CriteriaBuilder größtes Datum nur
- 7. Wie unter Verwendung von Präfix oder Suffix-Strings in SQL
- 8. Längstes gemeinsames Suffix
- 9. größtes Produkt von 30 aufeinanderfolgenden Ziffern
- 10. Python: Vergleich von zwei Strings
- 11. Finding Teile von zwei Strings in PHP passend
- 12. Finden größten gemeinsames Subtyp von zwei Scala Typen
- 13. Verknüpfen von zwei ActiveRecord-Zuordnungen für gemeinsames Attribut
- 14. XOR von zwei Hex-Strings in JavaScript
- 15. Permutationen von einer Liste in zwei Strings
- 16. Hinzufügen von zwei Strings zusammen in dt.datetime
- 17. PHP: Hinzufügen von Präfix-Strings zu Array-Werten
- 18. Regex entspricht den Präfix und Suffix von Strings mit Zahlen
- 19. Äquivalent von + = für Präfix
- 20. Zwei Werkzeugketten mit cmake verwenden
- 21. Gemeinsames Projekt in TFS
- 22. Gemeinsames Objekt in R
- 23. Join zwei Dataframe ohne ein gemeinsames Feld in Spark-Scala
- 24. Zwei vcs root in teamcity und gemeinsames Verzeichnis
- 25. So entfernen Sie ein gemeinsames Präfix-Muster aus mehreren Dateinamen in bash
- 26. subtrahieren zwei Strings in Javascript
- 27. Ersetzen zwei Strings in sed
- 28. Position vergleicht zwei Strings
- 29. Get Array von Strings zwischen zwei Strings mit Javascript
- 30. Gemeinsames Rekursionsmuster