OR79. 字符串提取
描述
请从字符串中提取以最后一个[img]开头、以最后一个[\img]结尾的字符串,未找到匹配的字符串返回"null"输入描述
可能包含[img][\img]的字符串输出描述
截取后的字符串示例1
输入:
bbb[img]ccc[img]ddd[\img]eee[\img]
输出:
[img]ddd[\img]eee[\img]
示例2
输入:
abc
输出:
null
C 解法, 执行用时: 2ms, 内存消耗: 228KB, 提交时间: 2019-05-05
#include<stdio.h> #include<string.h> int main() { char str[128]; scanf("%s",str); int len = strlen(str); int l,r; for(l = len - 5; l >= 0;l--) if(str[l] == '[' && str[l+1]=='i'&&str[l+2]=='m'&&str[l+3]=='g'&&str[l+4]==']')break; if(l < 0) { printf("null"); return 0; } for(r = len - 1; r >= l + 10;r--) if(str[r] == ']' && str[r-1]=='g'&&str[r-2]=='m'&&str[r-3]=='i'&&str[r-4]=='\\'&&str[r-5]=='[')break; if(r < l + 10) { printf("null"); return 0; } str[r+1] = '\0'; printf("%s",str + l); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 236KB, 提交时间: 2019-01-30
#include<stdio.h> #include<string.h> int main() { char str[128]; scanf("%s",str); int len = strlen(str); int l,r; for(l = len - 5; l >= 0;l--) if(str[l] == '[' && str[l+1]=='i'&&str[l+2]=='m'&&str[l+3]=='g'&&str[l+4]==']')break; if(l < 0) { printf("null"); return 0; } for(r = len - 1; r >= l + 10;r--) if(str[r] == ']' && str[r-1]=='g'&&str[r-2]=='m'&&str[r-3]=='i'&&str[r-4]=='\\'&&str[r-5]=='[')break; if(r < l + 10) { printf("null"); return 0; } str[r+1] = '\0'; printf("%s",str + l); return 0; }