class Solution {
public:
bool isPrefix(string& s, string& target) {
if(s.length() > target.length())
return false;
int i = 0;
int j = 0;
while (i < s.length()) {
if (s[i] != target[j])
return false;
i++; j++;
}
return true;
}
bool isSuffix(string& s, string& target) {
if(s.length() > target.length())
return false;
int i = s.length() - 1;
int j = target.length()-1;
while (i >= 0) {
if (s[i] != target[j])
return false;
i--; j--;
}
return true;
}
bool comp(string& s1, string& s2) { return s1.length() < s2.length(); }
int countPrefixSuffixPairs(vector<string>& words) {
//sort(words.begin(), words.end());
int count = 0;
for(int i=0; i<words.size()-1; i++) {
for(int j=i+1; j<words.size(); j++) {
if(isPrefix(words[i], words[j]) && isSuffix(words[i], words[j])) {
count++;
}
}
}
return count;
}
};