| 212 | } |
| 213 | |
| 214 | size_t EditDistance(const std::wstring &lhs, const std::wstring &rhs) { |
| 215 | std::vector<size_t> prev(rhs.size() + 1); |
| 216 | std::vector<size_t> curr(rhs.size() + 1); |
| 217 | for (size_t j = 0; j <= rhs.size(); ++j) |
| 218 | prev[j] = j; |
| 219 | |
| 220 | for (size_t i = 0; i < lhs.size(); ++i) { |
| 221 | curr[0] = i + 1; |
| 222 | for (size_t j = 0; j < rhs.size(); ++j) { |
| 223 | const size_t cost = lhs[i] == rhs[j] ? 0 : 1; |
| 224 | curr[j + 1] = std::min(std::min(curr[j] + 1, prev[j + 1] + 1), prev[j] + cost); |
| 225 | } |
| 226 | prev.swap(curr); |
| 227 | } |
| 228 | return prev[rhs.size()]; |
| 229 | } |
| 230 | |
| 231 | std::wstring GetTempBmpPath(const wchar_t *file_name) { |
| 232 | wchar_t temp_path[MAX_PATH] = {0}; |
no test coverage detected