当前位置:网站首页>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;
}
边栏推荐
- Cadeus has never stopped innovating. Decentralized edge rendering technology makes the metauniverse no longer far away
- el-tree结合el-table,树形添加修改操作
- Enlightenment of maker thinking in Higher Education
- Jerry's ad series MIDI function description [chapter]
- Why do you have to be familiar with industry and enterprise business when doing Bi development?
- PostgreSQL基本结构——表
- 超详细教程,一文入门Istio架构原理及实战应用
- 【公开课预告】:视频质量评价基础与实践
- Golang面试整理 三 简历如何书写
- WebGIS framework -- kalrry
猜你喜欢

KDD2022 | 什么特征进行交互才是有效的?

Application practice | Shuhai supply chain construction of data center based on Apache Doris

How to implement Devops with automatic tools
![[early knowledge of activities] list of recent activities of livevideostack](/img/14/d2cdae45a18a5bba7ee1ffab903af2.jpg)
[early knowledge of activities] list of recent activities of livevideostack

Enlightenment of maker thinking in Higher Education

MP3是如何诞生的?

How was MP3 born?

一文掌握数仓中auto analyze的使用

Keep on fighting! The city chain technology digital summit was grandly held in Chongqing

Analyzing the maker space contained in steam Education
随机推荐
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
湘江鲲鹏加入昇腾万里伙伴计划,与华为续写合作新篇章
时空预测3-graph transformer
Flink1.13 SQL basic syntax (I) DDL, DML
Sorting and sharing of selected papers, systems and applications related to the most comprehensive mixed expert (MOE) model in history
El tree combined with El table, tree adding and modifying operations
Flutter TextField示例
Go语言循环语句(第10课中3)
智洋创新与华为签署合作协议,共同推进昇腾AI产业持续发展
283. 移动零-c与语言辅助数组法
Interpreting the development of various intelligent organizations in maker Education
置信区间的画法
保证接口数据安全的10种方案
赋能数字经济 福昕软件出席金砖国家可持续发展高层论坛
机器学习笔记 - 互信息Mutual Information
超详细教程,一文入门Istio架构原理及实战应用
Redis 排查大 key 的3种方法,优化必备
Monitor the shuttle return button
迷失在Mysql的锁世界
Shutter WebView example