题目来源:3042. 统计前后缀下标对 I
暴力枚举下标为 i 和 j 的字符串 words[i] 和 words[j],当满足条件:
words[i] == words[j].substr(0, words[i].size()) && words[i] == words[j].substr(words[j].size() - words[i].size()) 时,
计数器 count++,最后返回 count。
代码:
/*
* @lc app=leetcode.cn id=3042 lang=cpp
*
* [3042] 统计前后缀下标对 I
*/
// @lc code=start
class Solution
{
public:
int countPrefixSuffixPairs(vector<string> &words)
{
if (words.empty())
return 0;
int n = words.size(), count = 0;
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
{
int len1 = words[i].size(), len2 = words[j].size();
if (len1 <= len2)
if (words[i] == words[j].substr(0, len1) &&
words[i] == words[j].substr(len2 - len1))
count++;
}
return count;
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(n2),其中 n 是数组 words 的元素个数。
空间复杂度:O(1)。