【每天一道算法题】Lucky String
A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Given a string consisting of only lower case letters , output all its lucky non-empty substrings in lexicographical order. Same substrings should be printed once.
输入描述:
a string consisting no more than 100 lower case letters.
输出描述:
output the lucky substrings in lexicographical order.one per line. Same substrings should be printed once.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define DEBUG 0
#define VECTOR 1
#ifdef VECTOR
/* 数组数据域成员类型 */
typedef struct _DataStruct {
char data[10];
} DataStruct;
/* 动态数组vector类型 */
typedef struct _Vector {
int size; /* 数组当前使用的长度 */
int capacity; /* 数组最大可使用长度 */
DataStruct *array;
} Vector;
/* 动态数组常用的一些操作 */
void VectorInit(Vector *vector); /* 初始化 */
void VectorAppend(Vector *vector, DataStruct *data); /* 向数组中添加元素 */
void VectorAppendWithDeduplicate(Vector *vector, DataStruct *data, bool (*IsEqual)(void *, void *));
bool VectorIsFull(Vector *vector); /* 判断当前数组是否满 */
void VectorFree(Vector *vector); /* 释放当前数组 */
#define DEFAULT_MAX_CAPACITY 10; /* 默认数组的容量 */
/* 初始化数组 */
void VectorInit(Vector *vector)
{
if (vector == NULL) {
return;
}
vector->size = 0;
vector->capacity = DEFAULT_MAX_CAPACITY;
vector->array = (DataStruct *)malloc(sizeof(D