善用字符串比较函数
int compare (size_type pos, size_type n, const basic_string& s,size_type pos2, size_type n2) const;
从索引0开始比较,比较的长度为两个之中较短的字符串,即可以确定字符串A是否是字符串B的前缀,若是前缀,则原根数-1.
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @param s string字符串vector * @return int整型 */ int solve(int n, vector<string>& s) { // write code here //int n = s.size(); int m = n; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (s[i].size() > s[j].size()) { if (s[j].compare(0, s[j].size(), s[i], 0, s[j].size()) == 0) { m--; } } else { if (s[i].compare(0, s[i].size(), s[j], 0, s[i].size()) == 0) { m--; } } } } return m; } };