#pragma once
|
|
#include <algorithm>
|
#include <memory>
|
#include <string>
|
#include <vector>
|
|
#include "caffe2/core/common.h"
|
|
namespace caffe2 {
|
|
CAFFE2_API std::vector<std::string>
|
split(char separator, const std::string& string, bool ignore_empty = false);
|
|
CAFFE2_API std::string trim(const std::string& str);
|
|
CAFFE2_API size_t editDistance(
|
const std::string& s1, const std::string& s2, size_t max_distance = 0);
|
|
CAFFE2_API inline bool StartsWith(const std::string& str, const std::string& prefix) {
|
return std::mismatch(prefix.begin(), prefix.end(), str.begin()).first ==
|
prefix.end();
|
}
|
|
CAFFE2_API inline bool EndsWith(
|
const std::string& full,
|
const std::string& ending) {
|
if (full.length() >= ending.length()) {
|
return (
|
0 ==
|
full.compare(full.length() - ending.length(), ending.length(), ending));
|
} else {
|
return false;
|
}
|
}
|
|
CAFFE2_API int32_t editDistanceHelper(const char* s1,
|
size_t s1_len,
|
const char* s2,
|
size_t s2_len,
|
std::vector<size_t> ¤t,
|
std::vector<size_t> &previous,
|
std::vector<size_t> &previous1,
|
size_t max_distance);
|
} // namespace caffe2
|