#include <leetcode.h>
|
static bool | dfs (unsigned long long n1, unsigned long long n2, const char *, unsigned short length, unsigned short current) |
|
static bool | equal (string, const char *, unsigned short start, unsigned short length) |
| 判断一个字符串与另一个字符串的子串是否相等 更多...
|
|
static bool | isAdditiveNumber (string num) |
|
static unsigned long long | str2ui (const char *, unsigned short start, unsigned short length) |
| 将字符串的一个子串转换为整数 更多...
|
|
◆ dfs()
bool leetcode::additive_number::Solution::dfs |
( |
unsigned long long |
n1, |
|
|
unsigned long long |
n2, |
|
|
const char * |
nums, |
|
|
unsigned short |
length, |
|
|
unsigned short |
current |
|
) |
| |
|
static |
- 参数
-
n1 | 第一个数字 |
n2 | 第二个数字 |
length | 总长度 |
current | 现在的位置 |
- 返回
在文件 leetcode.cpp 第 769 行定义.
770 const auto sum = to_string(n1 + n2);
771 if(sum.length() > length - current) {
775 if(!
equal(sum, nums, current, length)) {
779 if(current + sum.length() == length) {
783 const auto n3 =
str2ui(nums, current, sum.length());
784 return dfs(n2, n3, nums, length, current + sum.length());
static bool dfs(unsigned long long n1, unsigned long long n2, const char *, unsigned short length, unsigned short current)
static unsigned long long str2ui(const char *, unsigned short start, unsigned short length)
将字符串的一个子串转换为整数
static bool equal(string, const char *, unsigned short start, unsigned short length)
判断一个字符串与另一个字符串的子串是否相等
引用了 dfs(), equal() , 以及 str2ui().
被这些函数引用 dfs(), isAdditiveNumber() , 以及 leetcode::additive_number::TEST().
◆ equal()
bool leetcode::additive_number::Solution::equal |
( |
string |
sum, |
|
|
const char * |
nums, |
|
|
unsigned short |
start, |
|
|
unsigned short |
length |
|
) |
| |
|
static |
判断一个字符串与另一个字符串的子串是否相等
- 参数
-
start | 另一个字符串的子串起始位置 |
length | 另一个字符串的总长度 |
- 返回
- 一个字符串与另一个字符串的子串是否相等
在文件 leetcode.cpp 第 796 行定义.
798 for(
int i = start; j < sum.length() && i < length; i++, j++) {
799 if(sum[j] != nums[i]) {
803 return j == sum.length();
被这些函数引用 dfs() , 以及 leetcode::additive_number::TEST().
◆ isAdditiveNumber()
bool leetcode::additive_number::Solution::isAdditiveNumber |
( |
string |
num | ) |
|
|
static |
在文件 leetcode.cpp 第 742 行定义.
743 if(num.length() < 3) {
746 auto *
const nums =
new char[num.length()];
747 for(
int i = 0; i < num.length(); i++) {
750 for(
int i = 1; i <= num.length() - i; i++) {
751 const auto n1 =
str2ui(nums, 0, i);
752 for(
int j = i + 1; j - i <= num.length() - j; j++) {
753 const auto n2 =
str2ui(nums, i, j - i);
754 if(
dfs(n1, n2, nums, num.length(), j)) {
引用了 dfs() , 以及 str2ui().
被这些函数引用 leetcode::additive_number::TEST().
◆ str2ui()
unsigned long long leetcode::additive_number::Solution::str2ui |
( |
const char * |
str, |
|
|
unsigned short |
start, |
|
|
unsigned short |
length |
|
) |
| |
|
static |
该类的文档由以下文件生成: