BoundingBox
这个太简单了,找到最大最小值。
#line 2 "BoundingBox.cpp"
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <iostream>
#include <string>
#include <map>
#include <set>
#include <vector>
#define MAXN 1010
using namespace std;
class BoundingBox {
public:
int smallestArea(vector <int> X, vector <int> Y) {
sort(X.begin(), X.end()); sort(Y.begin(), Y.end());
int a = X[X.size() - 1] - X[0];
int b = Y[Y.size() - 1] - Y[0];
return a * b;
}
};
PalindromicSubstringsDiv2
这个有点尴尬,做过的,第一次还超时了
#line 2 "PalindromicSubstringsDiv2.cpp"
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <iostream>
#include <string>
#include <map>
#include <set>
#include <vector>
#define MAXN 1010
using namespace std;
class PalindromicSubstringsDiv2 {
public:
int count(vector <string> S1, vector <string> S2) {
int l1 = S1.size(), l2 = S2.size();
string str = "";
for (int i = 0; i < l1; ++ i) str += S1[i];
for (int i = 0; i < l2; ++ i) str += S2[i];
//cout << str << endl;
int res = str.length();
for (int i = 1; i < str.length() - 1; ++ i) {
int j = i - 1, k = i + 1;
while (j >= 0 && k < str.length() && str[j] == str[k]) {
j --; k ++;
res ++;
}
}
for (int i = 0; i < str.length() - 1; ++ i) if (str[i] == str[i + 1]) {
res ++;
int j = i - 1, k = i + 2;
while (j >= 0 && k < str.length() && str[j] == str[k]) {
j --; k ++;
res ++;
}
}
return res;
}
};