#include <cstring>
long long int fibonacci(int _Xx) {
static long long int save[1000];
static bool first = true;
if (first) first = false, memset(save, -1, sizeof(save));
if (save[_Xx] != -1) return save[_Xx];
if (_Xx <= 2) return 1;
return save[_Xx] = fibonacci(_Xx - 1) + fibonacci(_Xx - 2);
}
代码7
该函数用于计算最长的每个字母最多出现一次的子字符串的长度,出处已经不可考。
#include <string>
int lengthOfLongestSubstring(std::string s) {
int i, j, len = 0, maxx = 0;
bool sign[30];
memset(sign, 0, sizeof(sign));
for (i = 0, j = 0; j < s.length(); ++j) {
while (sign[s[j] - 'a'] == 1) {
sign[s[i] - 'a'] = 0;
++i;
}
sign[s[j] - 'a'] = 1;
maxx = std::max(maxx, j - i + 1);
}
return maxx;
}