0
点赞
收藏
分享

微信扫一扫

每日一题:【LeetCode】1576.替换所有的问号

程序员漫画编程 2022-01-05 阅读 29

目录

题目

思路

代码


题目

提示:

1 <= s.length <= 100

s 仅包含小写英文字母和 '?' 字符

思路

遍历找到?的位置,用字母替换,判断是否与两边的字母相同

代码

本来想搞个字符串数组,后来在题解中发现我可以设一个char的循环变量

以及只要三个字母就可以啦

写的还是有点复杂

char * modifyString(char * s){
int i;
char ch;
int len=strlen(s);
for(i=0;i<len;i++){
    if(s[i]=='?'){
        for(ch='a';ch<='c';ch++){
            if(i!=0 && i!=len-1){
                if(s[i-1]!=ch && s[i+1]!=ch){
                    s[i]=ch;
                    break;
                }
            }else if(i==0){
                if(s[i+1]!=ch){
                    s[i]=ch;
                    break;
                }
            }else{
                if(s[i-1]!=ch){
                    s[i]=ch;
                    break;
                }
            }
        }
    }
}
return s;
}
举报

相关推荐

0 条评论