Итак, я решал проблему на LeetCode, в которой Input: ["flower", "flow", "flight"] Output: "fl" ... поэтому я нашел решение и отлично работал на моем локальном компиляторе Visual Studio но когда я отправил его на сервер, сервер пожаловался на следующее сообщение: «Строка 924: Char 34: ошибка выполнения: добавление беззнакового смещения к 0x6030000000a0 переполнено до 0x603000000080 (stl_vector.h). РЕЗЮМЕ: UndefinedBehaviorSanitizer: undefined-behavior / usr / bin /../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_vector.h:933:34"
и, кроме того, чтобы прояснить проблему, это ссылка на проблему на LeetCode Самый длинный общий префикс , мое решение -
string longestCommonPrefix(vector<string> strs)
{
string temp;
int count = 0;
int new_count = 0;
string::iterator iter1;
string::iterator iter2;
for (int i = 0; i != strs.size(); ++i) {
if (i != str.size() - 1) {
cout << "if 1\n";
iter1 = strs[i].begin();
iter2 = strs[i + 1].begin();
while (iter1 != str[i].end() && iter2 != str[i + 1].end()) {
if (*iter1 == *iter2 ) {
temp.push_back(*iter1);
++count;
}
if (*iter1 != *iter2)
break;
++iter1;
++iter2;
}
}
if (i == str.size() - 1) {
iter1 = strs[i].begin();
iter2 = strs[i - 1].begin();
while (iter1 != str[i].end() && iter2 != str[i - 1].end()) {
if (*iter1 == *iter2 ) {
temp.push_back(*iter1);
++new_count;
}
if (*iter1 != *iter2)
break;
++iter1;
++iter2;
}
break;
}
i += 1;
}
new_count = min(count, new_count);
if ( new_count == 0) {
return "";
}
temp = string(temp.substr(0, new_count));
return temp;
}