当前位置: 首页 > 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/100337.html

相关文章:

  • 京东代运营优化网站搜索排名
  • 临淄哪里做网站外贸推广公司
  • 如何建立自己的网站商城seo查询站长工具
  • 阿里云主机做网站百度推广代理公司
  • 网络营销中网站建设的策略高质量外链代发
  • 网站思维导图例子全媒体运营师报考官网在哪里
  • 陕西示范校建设专题网站中山口碑seo推广
  • 竭诚网络网站建设公司朝阳seo排名优化培训
  • 济南网站建设流程建站平台哪家好
  • 网站服务器和vps做一台百度网盟推广怎么做
  • 漳州网站建设今日特大新闻新事
  • 南京做网站哪家好石家庄网站seo
  • 一级域名 二级域名 目录网站推广电商网站
  • 万网如何上传网站互联网推广招聘
  • 网站建设的市场有多大网站建设制作专业
  • 太原网站建设地图常见的网络营销平台有哪些
  • 网站维护 静态页面服务器租用
  • 部门网站建设seo分析
  • 公司网站推广如何做现在如何进行网上推广
  • 东莞做个网站百度网盘优化
  • 建设部网站证书查询网页设计工作室长沙
  • wordpress 获得当前url重庆seo推广公司
  • 加强机关网站内容建设今日热点
  • 残疾人无障碍网站怎么做武汉网络关键词排名
  • 男人和女人做羞羞的免费网站郴州网站建设网络推广渠道
  • 58同城招聘 招聘网许昌seo推广
  • 手机网站与PC网站长春seo排名扣费
  • 中国建设银行东莞市网站提高工作效率的工具
  • 网站视频主持人网临沂网站建设公司哪家好
  • 东莞品牌网站设计公司网址如何下载视频