/*http://acm.nit.net.cn/showproblem.jsp?pid=1022*/
#include <stdio.h>
#include <ctype.h>
#define MAXSIZE 250;
char * unfoldstr(char *);
int main()
{
int n, i;
char str[250];
while(scanf("%d",&n) == 1)
{
for(i=0; i < n; i++)
{
scanf("%s", str);
unfoldstr(str);
}
}
return 0;
}
char * unfoldstr(char * str)
{
int i;
char * end = NULL;
int num;
while(*str)
{
if(isdigit(*str))
{
num = 0;
while(isdigit(*str))
{
num= num * 10 + *str - '0';
str++;
}
end = str;
str++;
for(i = 0; i < num; i++)
{
if((*end) == '(')
{
str = unfoldstr(end+1);
}
else
{
putchar(*end);
}
}
}
if(isalpha(*str))
{
putchar(*str);
++str;
}
if(*str == ')')
{
str++;
return str;
}
if(*str == '\0' )
{
putchar('\n');
break;
}
}
}
1022 展开字符串(递归超时的)
最新推荐文章于 2025-12-09 17:40:34 发布
本文介绍了一个字符串展开算法的实现过程,该算法能够处理带有数字和括号的字符串,通过递归方式实现字符串的展开,主要应用于编程竞赛中解决特定类型的问题。
1792

被折叠的 条评论
为什么被折叠?



