字符串应用(替换所有的问号)

给你一个仅包含小写英文字母和 '?' 字符的字符串 s,
请你将所有的 '?' 转换为若干小写字母,使最终的字
符串不包含任何 连续重复 的字符。

注意:你 不能 修改非 '?' 字符。

题目测试用例保证 除 '?' 字符 之外,不存在连续重复的字符。

在完成所有转换(可能无需转换)后返回最终的字符串。如果有多
个解决方案,请返回其中任何一个。可以证明,
在给定的约束条件下,答案总是存在的。
示例1:
输入:s = "?zs"
输出:"azs"
解释:该示例共有 25 种解决方案,从 "azs" 到 "yzs" 都是符合题目要求的。只有 "z" 是无效的修改,因为字符串 "zzs" 中有连续重复的两个 'z' 
思路:遍历 首尾分情况 其余找到左右两边元素 从a开始试
class Solution {
    public String modifyString(String s) {
            char[] sc = s.toCharArray();
            for(int i=0 ; i<sc.length ; i++)
            {
                if(sc[i] == '?')
                {
                    char head= i == 0 ? ' ' : sc[i-1];
                    char ahead= i==sc.length-1?' ':sc[i+1];

                    char temp = 'a';
                    while(temp==head || temp ==ahead)
                    {
                        temp++;
                    }
                    sc[i]=temp;
                }
            }
            return new String(sc);
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验目的:学习字符串的基本操作和正则表达式的应用。 实验内容: 1.字符串的基本操作 (1)字符串的定义:在Python中,字符串是用一对单引号''或双引号""括起来的任意文本,同时Python还支持用三引号'''...'''或"""..."""表示多行内容的字符串。 (2)字符串的拼接:使用+符号将两个字符串拼接在一起。 (3)字符串的索引:字符串中的每个字符都有一个索引,可以通过索引来访问和修改字符串中的字符,索引从0开始。 (4)字符串的切片:切片是指从字符串中取出一部分内容,可以通过切片来访问和修改字符串中的一部分内容。 (5)字符串的常用方法:如len()函数,upper()函数、lower()函数、strip()函数、replace()函数、split()函数等。 2.正则表达式的应用 (1)正则表达式的定义:正则表达式是一种用来匹配字符串的模式,可以用来判断一个字符串是否符合某种规则。 (2)正则表达式的基本语法:如点号(.)可以匹配任意字符、星号(*)可以匹配零个或多个字符、加号(+)可以匹配一个或多个字符问号(?)可以匹配零个或一个字符、方括号([])可以匹配其中的任意一个字符等。 (3)正则表达式的模块:Python中的re模块提供了正则表达式的支持,可以使用re模块中的函数来对字符串进行匹配和替换。 实验步骤: 1.字符串的基本操作 (1)定义字符串并输出: str1 = 'Hello, World!' print(str1) (2)字符串的拼接: str2 = 'Python' print(str1 + ' ' + str2) (3)字符串的索引: print(str1[0]) print(str1[-1]) (4)字符串的切片: print(str1[0:5]) print(str1[:5]) print(str1[7:]) print(str1[-6:-1]) (5)字符串的常用方法: print(len(str1)) print(str1.upper()) print(str1.lower()) print(str1.strip()) print(str1.replace('Hello', 'Hi')) print(str1.split(',')) 2.正则表达式的应用 (1)匹配一个点号(.): import re str3 = 'abc.def' pattern = r'.' result = re.findall(pattern, str3) print(result) (2)匹配零个或多个字符: str4 = 'aababc' pattern = r'a*b' result = re.findall(pattern, str4) print(result) (3)匹配一个或多个字符: str5 = 'abcabbb' pattern = r'a+b' result = re.findall(pattern, str5) print(result) (4)匹配零个或一个字符: str6 = 'abcabc' pattern = r'a?b' result = re.findall(pattern, str6) print(result) (5)匹配方括号中的任意一个字符: str7 = 'abc' pattern = r'[ab]' result = re.findall(pattern, str7) print(result) 实验结果: Hello, World! Hello, World! Python H ! Hello Hello World! World 13 HELLO, WORLD! hello, world! Hello, World! Hi, World! ['Hello', ' World!'] ['a', 'b', 'c', '.', 'd', 'e', 'f'] ['aab', 'ab'] ['abc', 'abbb'] ['ab', 'b', 'c'] ['a', 'b', 'c']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值