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

乾县网站建设seo在哪学

乾县网站建设,seo在哪学,个人做慈善网站,做一钓鱼网站吗字符串变形 题目描述数据范围要求 示例示例1示例2示例3 解题思路代码实现复杂度分析相关要点 题目描述 对于一个长度为 n 的字符串,需要进行以下变形操作: 将字符串中由空格隔开的单词反序排列反转每个字符的大小写 数据范围 1 ≤ n ≤ 10^6字符串中…

字符串变形

    • 题目描述
      • 数据范围
      • 要求
    • 示例
      • 示例1
      • 示例2
      • 示例3
    • 解题思路
    • 代码实现
    • 复杂度分析
    • 相关要点

题目描述

对于一个长度为 n 的字符串,需要进行以下变形操作:

  1. 将字符串中由空格隔开的单词反序排列
  2. 反转每个字符的大小写

数据范围

  • 1 ≤ n ≤ 10^6
  • 字符串中只包括大写英文字母、小写英文字母、空格

要求

  • 空间复杂度:O(n)
  • 时间复杂度:O(n)

示例

示例1

输入:"This is a sample",16
输出:"SAMPLE A IS tHIS"

示例2

输入:"nowcoder",8
输出:"NOWCODER"

示例3

输入:"iOS",3
输出:"Ios"

解题思路

  1. 整体思路:

    • 先将整个字符串反转
    • 遍历字符串,对每个字符进行大小写转换
    • 对每个单词进行反转
  2. 具体步骤:

    • 定义一个反转函数 reverse,用于反转字符串指定区间的字符
    • 先将整个字符串反转
    • 遍历字符串:
      • 遇到非空格字符时,转换大小写
      • 遇到空格时,反转前面的单词
    • 处理最后一个单词

代码实现

void reverse(char* s, int head, int tail) {while (head < tail) {char temp = s[head];       // 保存头部字符s[head] = s[tail];         // 将尾部字符移到头部s[tail] = temp;            // 将保存的头部字符移到尾部head++;                    // 头部指针向右移动tail--;                    // 尾部指针向左移动}
}
char* trans(char* s, int n) {if (n == 0)return "";                 // 如果字符串长度为0,直接返回空字符串// 先将整个字符串反转reverse(s, 0, n - 1);int j = 0, i;                  // j 用于记录单词的长度,i 用于遍历字符串int mark;                      // mark 用于记录最后一个空格的位置// 遍历处理每个字符for (i = 0; i < n; i++) {if (s[i] != ' ') {         // 如果当前字符不是空格// 转换大小写if (s[i] >= 'a' && s[i] <= 'z') {s[i] = s[i] - 32;  // 小写转大写(ASCII 码差值为32)} else {s[i] = s[i] + 32;  // 大写转小写}j++;                   // 单词长度加1} else {                   // 如果遇到空格// 遇到空格,反转前面的单词reverse(s, i - j, i - 1); // 反转当前单词j = 0;                 // 重置单词长度mark = i;              // 记录空格位置}}// 处理边界情况if (i == j) {                  // 如果整个字符串是一个单词(没有空格)reverse(s, 0, n - 1);      // 反转整个单词}if (mark != 0) {               // 如果字符串中有空格reverse(s, mark + 1, n - 1); // 反转最后一个单词}return s;                      // 返回处理后的字符串
}

复杂度分析

  • 时间复杂度:O(n)
    • 整体反转一次:O(n)
    • 遍历处理字符:O(n)
    • 单词反转:每个字符最多被反转两次,O(n)
  • 空间复杂度:O(1)
    • 只使用了常数额外空间

相关要点

  1. 字符串处理技巧

    • 使用双指针进行字符串反转
    • ASCII码转换实现大小写转换
    • 空格作为单词分隔符的处理
  2. 边界情况处理

    • 空字符串的处理
    • 只有一个单词的情况
    • 最后一个单词的处理
http://www.dtcms.com/wzjs/284218.html

相关文章:

  • 高明网站设计公司seo精准培训课程
  • 阿里云做网站官网宁波网络推广软件
  • 企业网站四种类型海外建站
  • 镇江手机网站制作谷歌建站
  • 图片上传 网站建设教学视频教程微信公众号平台官网
  • 国外做内容网站网络推广工作是做什么的
  • 想做一个自己的网站 怎么做活动推广方式都有哪些
  • 怎么做网站投放adsense国产长尾关键词拘挖掘
  • 网站引导页是什么意思百家号优化
  • 上海微信网站建设公司电话长尾关键词快速排名软件
  • 郑州做网站建设公司重庆seo网络优化咨询热线
  • 做展示网站要恋用什么程序bt最佳磁力搜索引擎吧
  • wordpress建电影网站竞价点击软件工具
  • qq空间可以做网站吗百度做广告多少钱一天
  • 网站升级公告模板品牌策划方案怎么做
  • 新闻网站个人可以做吗网站排名优化快速
  • 南宁网站制作最新招聘信息网页制作
  • 台州网站关键字优化详情百度搜题网页版入口
  • wordpress 媒体库空白给你一个网站seo如何做
  • 网站设计协议武汉seo网络优化公司
  • 最专业的网站建设seo优化服务公司seo综合查询中的具体内容有哪些
  • 通用网站建设需求分析做营销怎样才能吸引客户
  • 公司做网站的步骤能去百度上班意味着什么
  • 漳州市建设局网站足球排行榜前十名
  • 简易的网站制作企业员工培训课程有哪些
  • 信誉好的天津网站建设公司宣传网站制作
  • 免费ai设计logo网站汉中网站seo
  • 初学者想学网站建设浅议网络营销论文
  • 哪个网站专门做游戏脚本网站优化平台
  • 免费网页设计成品网站关键词优化是什么意思