ich einen Vektor von Strings habe wieüberprüfen Sie, ob ein Vektor von Strings ein Teil in eines des Elemente ist
a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
Wie würde ich prüfen, ob armstrong ein Teil starker in a1 ist. mit C++
Ich würde zwei for-Schleifen tun und prüfen, ob eine Zeichenfolge eine Teilzeichenfolge in a2 ist, aber ich möchte einen effizienten Ansatz.
std::vector<std::string> inArray(std::vector<std::string> &array1, std::vector<std::string> &array2)
{
vector<string> result;
for (string &s : array1)
{
for (string &d : array2)
{
if (s.find(d) != string::npos)
{
cout << d << endl;
}
}
}
return result;
}
int main() {
vector<string> a = { "arp", "live", "strong" };
vector<string> b = { "lively", "alive", "harp", "sharp", "armstrong" };
vector<string> result = inArray(a, b);
}
Gegeben seien zwei Arrays von Strings a1 und a2 ein sortiertes Array r in lexikographischen Reihenfolge der Zeichenketten von a1 zurück, die von Teilzeichenketten a2 sind.
Example 1:
a1 = ["arp", "live", "strong"]
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
returns ["arp", "live", "strong"]
Warum denken Sie, es ist uneffizient, haben Sie es gemessen? Wenn ja, poste den Code –
es ist O (N * M). Wäre es besser als das? –
"Wie würde ich überprüfen, ob Armstrong eine Teilkette von stark in a1 ist" Möchten Sie nicht anders herum überprüfen? –