当前位置:网站首页>1807. Replace the parentheses in the string
1807. Replace the parentheses in the string
2022-07-04 22:02:00 【Mr Gao】
1807. Replace the parentheses in the string
Give you a string s , It contains some pairs of brackets , Each bracket contains a Non empty Key .
For example , character string "(name)is(age)yearsold" in , Yes Two Bracket pair , Each contains keys "name" and "age" .
You know the values of many keys , These relationships are made up of two-dimensional string arrays knowledge Express , among knowledge[i] = [keyi, valuei] , The key keyi The corresponding value is valuei .
You need to replace all Pair of brackets . When you replace a pair of brackets , And the key it contains is keyi when , You need :
take keyi And parentheses with the corresponding values valuei Replace .
If from knowledge The value of a key cannot be found in , You need to keyi And brackets with question marks "?" Replace ( You don't need quotes ).
knowledge Each key in will appear at most once .s There will be no nested parentheses in .
Please return to replace all The result string after the bracket pair .
Example 1:
Input :s = “(name)is(age)yearsold”, knowledge = [[“name”,“bob”],[“age”,“two”]]
Output :“bobistwoyearsold”
explain :
key “name” The corresponding value is “bob” , So will “(name)” Replace with “bob” .
key “age” The corresponding value is “two” , So will “(age)” Replace with “two” .
Example 2:
Input :s = “hi(name)”, knowledge = [[“a”,“b”]]
Output :“hi?”
explain : Because I don't know the key “name” Corresponding value , So use “?” Replace “(name)” .
Example 3:
Input :s = “(a)(a)(a)aaa”, knowledge = [[“a”,“yes”]]
Output :“yesyesyesaaa”
explain : Same key in s There may be many times .
key “a” The corresponding value is “yes” , So put all the “(a)” Replace with “yes” .
Be careful , Not in brackets “a” It doesn't need to be replaced .
This problem is obviously relatively simple to use hash table, but , The author tried the conventional method this time , Interested can learn :
int f(char *s,int index,char ***knowledge,int knowledgeSize){
int i;
for(i=0;i<knowledgeSize;i++){
char *p=knowledge[i][0];
int j=index,k=0,r=0;
while(s[j]!='('&&p[k]!='\0'){
if(s[j++]!=p[k++]){
r=1;
break;
}
}
if(r==0&&s[j]==')'&&p[k]=='\0'){
return i;
}
}
return -1;
}
char * evaluate(char * s, char *** knowledge, int knowledgeSize, int* knowledgeColSize){
char *re=(char *)malloc(sizeof(char )*(strlen(s)+2));
int resize=0;
int i=0;
while(s[i]!='\0'){
// printf("|i %d ",i);
if(s[i]!='('){
re[resize++]=s[i];
}
else{
int index=f(s,i+1,knowledge,knowledgeSize);
if(index==-1){
re[resize++]='?';
}
else{
char *p=knowledge[index][1];
int k=0;
while(p[k]!='\0'){
re[resize++]=p[k++];
}
}
while(s[i]!=')'){
i++;
}
}
i++;
}
re[resize]='\0';
return re;
}
边栏推荐
- Compréhension approfondie du symbole [langue C]
- 输入的查询SQL语句,是如何执行的?
- Application practice | Shuhai supply chain construction of data center based on Apache Doris
- Rotary transformer string judgment
- PostgreSQL基本结构——表
- Drop down selection of Ehlib database records
- [public class preview]: basis and practice of video quality evaluation
- GTEST from ignorance to skillful use (1) GTEST installation
- # 2156. 查找给定哈希值的子串-后序遍历
- 【C语言进阶篇】数组&&指针&&数组笔试题
猜你喜欢
智洋创新与华为签署合作协议,共同推进昇腾AI产业持续发展
PMO:比较25种分子优化方法的样本效率
Application practice | Shuhai supply chain construction of data center based on Apache Doris
应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设
Daily question -leetcode1200- minimum absolute difference - array - sort
Lambdaquerywrapper usage
[C language] deep understanding of symbols
迷失在Mysql的锁世界
TCP协议三次握手过程
Super detailed tutorial, an introduction to istio Architecture Principle and practical application
随机推荐
广电五舟与华为签署合作协议,共同推进昇腾AI产业持续发展
New intersectionobserver usage notes
Operation of adding material schedule in SolidWorks drawing
MongoDB聚合操作总结
Caduceus从未停止创新,去中心化边缘渲染技术让元宇宙不再遥远
NAACL-22 | 在基于Prompt的文本生成任务上引入迁移学习的设置
TCP协议三次握手过程
面试官:说说XSS攻击是什么?
File read write
WebGIS framework -- kalrry
[public class preview]: basis and practice of video quality evaluation
VIM from dislike to dependence (23) -- the last gossip
El tree combined with El table, tree adding and modifying operations
Open3D 曲面法向量计算
HDU - 2859 Phalanx(DP)
[optimtool.unconstrained] unconstrained optimization toolbox
解决异步接口慢导致的数据错乱问题
Basic structure of PostgreSQL - table
能源势动:电力行业的碳中和该如何实现?
Delphi SOAP WebService 服务器端多个 SoapDataModule 实现相同的接口方法,接口继承