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

乾县网站建设产品推广的目的和意义

乾县网站建设,产品推广的目的和意义,直播电商的发展趋势,潮州做网站字符串变形 题目描述数据范围要求 示例示例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/246731.html

相关文章:

  • 网站建设小故事外贸新手怎样用谷歌找客户
  • 男女做羞羞羞的事视频网站哈尔滨seo优化公司
  • 揭阳高端网站建设价格torrent种子猫
  • 网页设计图片与文字对齐左对齐优化大师怎么卸载
  • 做网站优化两年遇到的SEO常态微信小程序开发零基础入门
  • 微信公众号运营策划书范文seo优化技术排名
  • 网站栏目功能可以发外链的网站整理
  • 企业网站建设制作多少钱营业推广案例
  • 杭州市上城区建设局网站优化设计三年级下册数学答案
  • 上海的网站开发公司seo服务外包费用
  • 淮南模板网站建设怎么样湖南长沙最新疫情
  • 外贸自己做网站好不好怎么提高关键词搜索权重
  • hishop多用户商城源码网络优化器下载
  • 网站建设创业规划书中国最近新闻大事件
  • 做电影网站要几G空间的竞价推广的企业
  • wordpress一键安装包信息流优化师培训
  • 手机网站建设哪家好天津百度推广代理商
  • 东莞广告公司东莞网站建设十大引擎网址
  • 亚马逊网站建设案例分析百度域名注册
  • 做门户论坛与网站的区别如何找到网络公关公司
  • 个人网站开发的现状百度优化师
  • 昆明网站建设费用刷赞网站推广免费链接
  • wordpress xml插件下载郑州seo服务技术
  • 昆山网站建设网站建设在线网站排名工具
  • 项目网络式管理流程是长沙seo计费管理
  • 网站建设技术服务哪些行业适合做网络推广
  • 每天网站外链做几条最好爱站网官网
  • 姜堰网站定制惠州seo收费
  • 嘉兴网站推广巨量引擎app
  • 常见的网站空间有哪些北京seo技术