Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Жаккар
- #include <iostream>
- #include <regex>
- #include <algorithm>
- std::string stringNormalization(std::string str) {
- const std::regex regexFirst{ R"(_|[^\d\w\s])" };
- const std::regex regexSecond{ R"(\b\w{1,3}\b)" };
- const std::regex regexThird{ R"(\s{2,})" };
- str = std::regex_replace(str, regexFirst, "");
- str = std::regex_replace(str, regexSecond, "");
- str = std::regex_replace(str, regexThird, " ");
- std::transform(str.begin(), str.end(), str.begin(), ::tolower);
- str.erase(0, str.find_first_not_of(' '));
- return str;
- }
- double FindC(std::string first, std::string second) {
- double counter{};
- for (int i{}; i < std::min(first.length(), second.length()); ++i) {
- if (first[i] == second[i]) {
- counter += 1.0;
- }
- }
- return counter;
- }
- int main() {
- std::string inputFirst, inputSecond;
- std::getline(std::cin, inputFirst);
- std::getline(std::cin, inputSecond);
- inputFirst = stringNormalization(inputFirst);
- inputSecond = stringNormalization(inputSecond);
- double c = FindC(inputFirst, inputSecond);
- double result = c / (inputFirst.length() + inputSecond.length() - c);
- std::cout << result << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement