当前位置: 首页 > wzjs >正文

南通网站排名方法全国31省市疫情最新消息今天

南通网站排名方法,全国31省市疫情最新消息今天,网站建设和网络推广外包,江门公司做网站1. 题目链接 LeetCode 1576. 替换所有的问号 2. 题目描述 给定一个仅包含小写字母和问号 ? 的字符串 s,要求将所有 ? 替换为任意小写字母,使得替换后的字符串中 没有相邻的两个字符相同。 示例: 输入:s "?zs" →…
1. 题目链接

LeetCode 1576. 替换所有的问号


2. 题目描述

给定一个仅包含小写字母和问号 '?' 的字符串 s,要求将所有 '?' 替换为任意小写字母,使得替换后的字符串中 没有相邻的两个字符相同
示例

  • 输入:s = "?zs" → 输出:"azs"(第一个 '?' 替换为 'a')。
  • 输入:s = "ubv?w" → 输出:"ubvaw"'?' 替换为 'a')。

3. 示例分析
  1. 简单替换
    • 输入:"a?b" → 输出:"acb"'?' 替换为 'c')。
  2. 边界处理
    • 输入:"??" → 输出:"ab"(两个 '?' 分别替换为 'a''b')。
  3. 复杂替换
    • 输入:"a?a" → 输出:"aba"(中间的 '?' 替换为 'b')。

4. 算法思路

核心思想

  1. 遍历字符串
    • 从左到右逐个字符处理,遇到 '?' 时进行替换。
  2. 字符选择策略
    • 'a''z' 依次尝试,选择第一个满足以下条件的字符:
      • 与左侧字符不同(若存在)。
      • 与右侧字符不同(若存在)。
  3. 左右判断
    • 每次替换只关注当前字符的左右邻居,确保局部最优,从而保证全局最优。

时间复杂度:O(n * 26) → O(n),其中 n 为字符串长度。
空间复杂度:O(1),无需额外空间。


5. 边界条件与注意事项
  1. 边界处理
    • '?' 位于字符串开头时,只需保证与右侧字符不同。
    • '?' 位于字符串末尾时,只需保证与左侧字符不同。
  2. 字符范围
    • 仅需替换为小写字母 'a'-'z',无需处理其他字符。
  3. 相邻字符冲突
    • 若左右字符相同(如 "a?a"),中间的 '?' 必须选择一个与两者不同的字符。

6. 代码实现
class Solution {
public:string modifyString(string s) {for (int i = 0; i < s.size(); i++) {if (s[i] == '?') {// 遍历 'a'-'z',寻找可替换字符for (char ch = 'a'; ch <= 'z'; ch++) {bool leftOk = (i == 0) || (s[i-1] != ch);   // 左侧无冲突bool rightOk = (i == s.size()-1) || (s[i+1] != ch); // 右侧无冲突if (leftOk && rightOk) {s[i] = ch;break; // 找到第一个可行字符后立即终止}}}}return s;}
};

在这里插入图片描述


关键代码解析

  1. 遍历字符串

    for (int i = 0; i < s.size(); i++)
    
    • 逐个字符检查是否为 '?'
  2. 字符替换逻辑

    for (char ch = 'a'; ch <= 'z'; ch++)
    
    • 'a''z' 依次尝试,找到第一个满足条件的字符。
  3. 条件检查

    bool leftOk = (i == 0) || (s[i-1] != ch);
    bool rightOk = (i == s.size()-1) || (s[i+1] != ch);
    
    • leftOk:若 '?' 在开头,无需检查左侧;否则检查左侧字符是否不同。
    • rightOk:若 '?' 在末尾,无需检查右侧;否则检查右侧字符是否不同。
  4. 替换并终止

    if (leftOk && rightOk) {s[i] = ch;break;
    }
    
    • 找到第一个可行字符后立即替换并跳出循环,保证时间复杂度最优。

与其他解法的对比

方法时间复杂度空间复杂度核心思想
模拟算法O(n)O(1)逐个替换,选择第一个可行字符
预填充法O(n)O(1)预先处理所有 '?' 的位置
随机替换法O(n)O(1)随机选择字符,可能需重试
http://www.dtcms.com/wzjs/64875.html

相关文章:

  • 做门票的网站什么是竞价推广
  • 深圳优化网站网络推广方案范例
  • 网站提示域名解析错误怎么办免费自建网站有哪些
  • 国内做钢铁的网站营销策略分析
  • 郑州网站推广怎么做网站seo分析
  • 做论文常用网站厦门seo测试
  • 网站查询功能是用什么程序做的百度官方客服平台
  • 做网站商网站推广方法
  • 网站动态加速关键词排名怎么快速上去
  • 怎么自己做网站挂到百度上百度问答一天能赚100块吗
  • 建设学院实验网站的作用企业网站首页
  • 口碑好的做网站seo工作是什么意思
  • 培训前端网站开发怎么被百度收录
  • 自己怎样做网站软文类型
  • 网站更换标题软文营销方法有哪些
  • 深圳西乡网站制作海外短视频跨境电商平台是真的吗
  • 珠海移动网站建设公司百度认证平台
  • 移动端网站开发用的是java吗?百度小说
  • 嘉兴市城乡规划建设局网站推广之家
  • 珠海模板网站建设公司全球热搜榜排名今日
  • 网站建设管理ppt模板小区推广最有效的方式
  • 网站怎么做伪静态武汉seo优化代理
  • 徐州做网站的公司哪家好百度推广代理怎么加盟
  • 好网站建设公司哪个好呀模板之家官网
  • wap建站程序合集百度竞价排名事件分析
  • 洛阳高新区做网站公司友情链接
  • 公司的个人网站怎么做友链交换平台
  • 大连城市建设集团网站什么叫营销
  • 临沂免费模板建站网站宣传推广方案
  • 一级做爰片c视频网站威海百度seo