nikunjsoni

816

May 13th, 2021
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<string> ambiguousCoordinates(string s) {
  4.         int n = s.size();
  5.         vector<string> ans;
  6.        
  7.         for(int i=1; i<n-2; i++){
  8.             vector<string> left = getAll(s.substr(1, i));
  9.             vector<string> right = getAll(s.substr(i+1, n-2-i));
  10.             for(auto first: left)
  11.                 for(auto second: right)
  12.                     ans.push_back("("+first+", "+second+")");
  13.         }
  14.         return ans;
  15.     }
  16.    
  17.     vector<string> getAll(string s){
  18.         int n = s.size();
  19.         if(n == 0) return {};
  20.         if(n == 1 && s[n-1] == '0') return {s};
  21.         if(n > 1 && s[0] == '0' && s[n-1] != '0') return {s.substr(0,1)+"."+s.substr(1, n-1)};
  22.         if(n > 1 && s[0] != '0' && s[n-1] == '0') return {s};
  23.         if(n == 2 && s == "00") return {};
  24.         if(n > 2 && s[0] == '0' && s[n-1] == '0'){
  25.             return {};
  26.         }
  27.        
  28.         vector<string> comb;
  29.         comb.push_back(s);
  30.         for(int i=1; i<n; i++){
  31.             comb.push_back(s.substr(0,i)+"."+s.substr(i));
  32.         }
  33.         return comb;
  34.         return {};
  35.     }
  36.    
  37. };
Advertisement
Add Comment
Please, Sign In to add comment