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

温州专业做网站推广之家

温州专业做网站,推广之家,做自己的网站收费吗,本地电脑如何做网站服务器字符串左旋 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 方法1 三步翻转法 要求:abcdef 左旋两个 整体逆序:fedcba左边逆序:cdef ba右边逆序:cdef ab #include<stdio.h> #include<…

字符串左旋

实现一个函数,可以左旋字符串中的k个字符。
例如:
ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB

方法1

三步翻转法
要求:abcdef 左旋两个

  • 整体逆序:fedcba
  • 左边逆序:cdef ba
  • 右边逆序:cdef ab
#include<stdio.h>
#include<string.h>
#include<assert.h>
void reverse(char* left, char* right)
{assert(left);assert(right);while (left < right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}
void left_move(char* arr, int k)
{assert(arr);int len = strlen(arr);k %= len;reverse(arr, arr + len - 1);//逆序整体reverse(arr, arr + len - k - 1);//逆序左边reverse(arr + len - k, arr + len - 1);//逆序右边
}
int main()
{char arr[] = "abcdef";left_move(arr, 2);printf("%s\n", arr);return 0;
}

方法2

  • 将第一个元素放到临时变量
  • 后面元素前移一位
  • 然后把临时变量的值放到最后
  • 循环
#include<stdio.h>
#include<string.h>
#include<assert.h>
void left_move(char* arr, int k)
{assert(arr);size_t len = strlen(arr);k %= len;while (k--){char tmp = *arr;size_t i = 0;for (i = 0; i < len - 1; i++){arr[i] = arr[i + 1];}arr[len - 1] = tmp;}
}
int main()
{char arr[] = "abcdef";left_move(arr, 2);printf("%s\n", arr);return 0;
}

字符串旋转结果

写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:
给定s1 =AABCD和s2 = BCDAA,返回1
给定s1=abcd和s2=ACBD,返回0.

AABCD左旋一个字符得到ABCDA

AABCD左旋两个字符得到BCDAA

AABCD右旋一个字符得到DAABC

方法1(穷举)

#include<stdio.h>
#include<string.h>
#include<assert.h>
int is_left_move(char* str1, char* str2)
{assert(str1 && str2);size_t len1 = strlen(str1);size_t len2 = strlen(str2);if (len1 != len2)return 0;int i = 0;for (i = 0; i < len1; i++){char tmp = *str1;size_t j = 0;for (j = 0; j < len1 - 1; j++){str1[j] = str1[j + 1];}str1[len1 - 1] = tmp;if (!strcmp(str1, str2))return 1;}return 0;
}
int main()
{char str1[] = "abcdef";char str2[] = "bcdefa";if (is_left_move(str1, str2))printf("yes");elseprintf("no");return 0;
}

方法2

在原字符串后面追加一个相同的字符串
旋转字符串是这个大的字符串的子字符串

#include<stdio.h>
#include<string.h>
#include<assert.h>
int is_left_move(char* str1, char* str2)
{assert(str1&&str2);int len1 = strlen(str1);int len2 = strlen(str2);if (len1 != len2)return 0;strncat(str1, str1, len1);if (strstr(str1, str2) == NULL)return 0;elsereturn 1;
}
int main()
{char arr1[30] = "abcdef";char arr2[] = "cdefab";if (is_left_move(arr1, arr2))printf("yes\n");elseprintf("no\n");return 0;
}
http://www.khdw.cn/news/14606.html

相关文章:

  • wordpress菜单扩展seo百度百科
  • 成品网站 免费试用seo测试
  • 建设网站需要花钱吗google浏览器官网下载
  • flash视频网站长春关键词优化排名
  • 最便宜的网站建设邯郸百度推广公司
  • 教育机构排名网站做优化一开始怎么做
  • 为什么我的网站只有新闻业被收录市场营销手段13种手段
  • 100种创意活动策划seo快速收录快速排名
  • 医院网站优化策划搜索词分析
  • 赵县网站建设seo全网营销
  • 糯米团网站怎么做如何在手机上制作网站
  • 动态网站的滚动图片怎么做太原模板建站定制网站
  • 网站模块怎样做一个网站平台
  • 微网站制作工具江西seo
  • 商城网站做推广苏州百度推广
  • 全国中小企业网站关键词排名规则
  • 做网站为什么用phpseo视频教程
  • 2023年7月最新新闻摘抄福州搜索引擎优化公司
  • 淘特app官方网站下载山西seo优化公司
  • 网站优化怎么做分录石家庄百度seo排名
  • 网站做中英文英文太长怎么办长沙企业网站设计
  • wordpress 站点地图网上怎么推广产品
  • 做富集分析的网站搜索引擎优化方法案例
  • 合肥网站排名优化公司哪家好seo站长工具是什么
  • 做投票的网站赚钱嘛百度云搜索引擎入口官网
  • 有专门为个人网站做推广的吗新闻联播今日新闻
  • 怎么做自己的一个网站seo系统培训
  • 网站建设与组织管理营销推广活动方案
  • 装修公司logo设计图片安卓优化大师官网
  • 商城系统快速开发平台关键词优化包年推广