题目:
题解:
struct NestedInteger* helper(const char * s, int * index){if (s[*index] == '[') {(*index)++;struct NestedInteger * ni = NestedIntegerInit();while (s[*index] != ']') {NestedIntegerAdd(ni, helper(s, index));if (s[*index] == ',') {(*index)++;}}(*index)++;return ni;} else {bool negative = false;if (s[*index] == '-') {negative = true;(*index)++;}int num = 0;while (s[*index] && isdigit(s[*index])) {num = num * 10 + s[*index] - '0';(*index)++;}if (negative) {num *= -1;}struct NestedInteger * ni = NestedIntegerInit();NestedIntegerSetInteger(ni, num);return ni;}
}struct NestedInteger* deserialize(char * s){int index = 0;return helper(s, &index);
}