题目描述:https://leetcode.cn/problems/reverse-substrings-between-each-pair-of-parentheses/description/
leetcode原题1190
栈,细心,细心,,,
void reverseStr(char *s, int len)
{
char tmp;
for (int i = 0; i < len / 2; i++) {
tmp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = tmp;
}
}
char *reverseParentheses(char *s){
int len = strlen(s) + 1;
int top = 0;
char *stack[100];
int str_len = 0;
char *str = (char *)malloc(sizeof(char) * len);
int stack_len;
int i, j;
memset(str, 0, sizeof(char) * len);
for (i = 0; i < len - 1; i++) {
if (s[i] == '(') {
stack[top] = (char *)malloc(sizeof(char) * len);
memset(stack[top], 0, sizeof(char) * len);
memcpy(stack[top], str, sizeof(char) * len);
str_len = 0;
memset(str, 0, sizeof(char) * len);
top++;
} else if (s[i] == ')') {
stack_len = strlen(stack[--top]);
reverseStr(str, str_len);
for (j = str_len - 1; j >= 0; j--) {
str[j + stack_len] = str[j];
}
str[str_len + stack_len] = '\0';
memcpy(str, stack[top], sizeof(char) * stack_len);
str_len += stack_len;
} else {
str[str_len++] = s[i];
}
}
return str;
}