虽然今天的每日一题还是简单但是让我获得到了一个重要的知识就是在进行申请动态内存的时候,我们最好是用malloc或者colloc,不要直接int或者char进行定义,因为这样好像会造成空间泄露,我们如果是用动态地址进行创造空间那么我们的内存就是从堆内存里面取到的,这样的地址不会系统自己进行释放所以用起来会比较放心,以前我写树,链表那些数据结构的时候基本上都是用动态内存进行分区,记得应该是在malloc.h这个文件头或者stdlib.h这个里面,好像这个后者是包含前者的,好久不写都忘了以前咋写的,记住了以后分配内存就用动态分配即可
请你设计一个可以解释字符串 command 的 Goal 解析器 。command 由 "G"、"()" 和/或 "(al)" 按某种顺序组成。Goal 解析器会将 "G" 解释为字符串 "G"、"()" 解释为字符串 "o" ,"(al)" 解释为字符串 "al" 。然后,按原顺序将经解释得到的字符串连接成一个字符串。
给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。
示例 1:
输入:command = "G()(al)"
输出:"Goal"
解释:Goal 解析器解释命令的步骤如下所示:
G -> G
() -> o
(al) -> al
最后连接得到的结果是 "Goal"
示例 2:输入:command = "G()()()()(al)"
输出:"Gooooal"
示例 3:输入:command = "(al)G(al)()()G"
输出:"alGalooG"
提示:
1 <= command.length <= 100
command 由 "G"、"()" 和/或 "(al)" 按某种顺序组成
- char * interpret(char * command){
- int i=0,j=0;
- char* str = (char*)calloc(105, sizeof(char*) );
- while(command[i]!='\0')
- {
- if(command[i]=='G')
- {
- str[j]='G';
- j++;
- }
- if(command[i]=='('&&command[i+1]==')')
- {
- str[j]='o';
- j++;
- }
- if(command[i]=='('&&command[i+1]=='a')
- {
- str[j]='a';
- j++;
- str[j]='l';
- j++;
- }
- i++;
- }
- //printf("%s",str);
- return str;
- }
当然了这个题也是很简单的,所以也没啥说的,最重要的就是上面的总结