首页 > 编程语言 >【数据结构和算法面试题】左旋转字符串

【数据结构和算法面试题】左旋转字符串

时间:2023-06-14 19:31:36浏览次数:38  
标签:p2 面试题 p1 end reverse char start 算法 数据结构



【数据结构和算法面试题】左旋转字符串_数据结构

问题分析:本题是常见的旋转字符串的问题,解决的方法是两步旋转的方法:

【数据结构和算法面试题】左旋转字符串_字符串_02

方法:

void do_reverse(char *p_start, char *p_end){
	if (NULL == p_start || NULL == p_end || p_start > p_end) return;
	char tmp;
	while(p_start < p_end){
		tmp = *p_start;
		*p_start = *p_end;
		*p_end = tmp;
		p_start ++;
		p_end --;
	}
}

void reverse(char *s, int len){
	if (NULL == s || len == 0) return;

	char *p1_start = s;
	char *p2_end = p1_start + strlen(s) - 1;

	char *p1_end = p1_start;
	int index = 1;
	while (index < len){
		index ++;
		p1_end ++;
	}
	char *p2_start = p1_end + 1;
	do_reverse(p1_start, p1_end);
	do_reverse(p2_start, p2_end);
	do_reverse(p1_start, p2_end);
}


标签:p2,面试题,p1,end,reverse,char,start,算法,数据结构
From: https://blog.51cto.com/u_16161414/6480231

相关文章

  • 代码随想录算法训练营第七天| 344.反转字符串 、 541. 反转字符串II、 剑指Offer 05.
     344.反转字符串代码:1voidreverseString(vector<char>&s){23inti=0;4intj=s.size()-1;5while(i<j)6{7charmid=s[i];8s[i]=s[j];9s[j]=mid;1011i++;12......
  • 【数据结构与算法面试题】子数组的最大和
    题目来源“数据结构与算法面试题80道”。问题分析:在数组的每一个位置处保存当前的最大值,当前的最大值组成为:解决方案:intget_max_subarray(int*a,intlength,bool&is_array_ok){ if(NULL==a||length<=0){ is_array_ok=false; return0; } int*p_h_a=(int*......
  • 简单易学的机器学习算法——K-Means++算法
    一、K-Means算法存在的问题由于K-Means算法的简单且易于实现,因此K-Means算法得到了很多的应用,但是从K-Means算法的过程中发现,K-Means算法中的聚类中心的个数k需要事先指定,这一点对于一些未知数据存在很大的局限性。其次,在利用K-Means算法进行聚类之前,需要初始化k个聚类中心,在上述的......
  • 数据结构和算法——二叉排序树
    一、二叉排序树对于无序的序列“62,58,88,47,73,99,35,51,93,29,37,49,56,36,48,50”,是否存在一种高效的查找方案,使得能够快速判断在序列中是否存在指定的数值?二叉排序树是一种简单,高效的数据结构。二叉排序树,又称为二叉查找树。二叉排序树或者是一棵空树,或者是具有以下性质的二叉树:若其左子树不为......
  • 挑战数据结构和算法面试题——最大差值
    题目来自伯乐在线,欢迎有不同答案的同学来一起讨论。分析:基本方法是遍历数组,找到当前值前面所有数组元素的最小值。方法:intget_max_distance(int*a,constintn){intmax_distance=0;//纪录最大距离if(n==0)returnmax_distance;intmin=a[0];//纪录最小的......
  • 推荐算法——基于图的推荐算法PersonalRank算法
    一、推荐的概述在推荐系统中,通常是要向用户推荐商品,如在购物网站中,需要根据用户的历史购买行为,向用户推荐一些实际的商品;如在视频网站中,推荐的则是不同的视频;如在社交网站中,推荐的可能是用户等等,无论是真实的商品,还是视频,再或者是用户,都可以假设成一种物品,如下图所示:(图片来自参考......
  • 【数据结构与算法面试题】求和
    题目来源“数据结构与算法面试题80道”。问题分析:可以使用类的构造方法,在类的每次实例化对象时都会调用构造方法,那么只需要实例化n个对象,就会调用n次构造方法,这就模拟了循环的过程,此时,只需要有一个全局变量记录累加的值即可。方法:#include<stdio.h>classcalnum{ public: cal......
  • 专访快手传输算法负责人周超博士:LAS标准的推出离不开信念感
    6月21日,快手正式对外发布基于流式的直播多码率自适应标准LAS(LiveAdaptiveStreaming),用于提供低延迟、平滑、流畅的直播多码率体验。LAS的端到端解决方案同时开源,包括服务端、客户端、业界领先的多码率自适应算法等,从而帮助业界实现零门槛接入和使用LAS。图:《搏击俱乐部》采访专家:......
  • java面试算法:设计搜索输入框的输入提示功能
    我们使用搜索引擎时,需要在搜索框输入关键字,当你在框中输入头几个字符时,搜索框会出现一个下拉框,里面包含着以当前输入字符为前缀的字符串,如果里面包含你想要输入的内容,那么你就可以直接选取,而不必要把关键字的所有字符依次输入,这种功能极大的提高了搜索体验。本次算法题的题目是,你如......
  • 微软亚洲工程院面试题:寻找两个二叉树节点的最近祖先
    给定一颗二叉树,并指定二叉树中任意两个节点,要求找出这两个节点在二叉树中的最近祖先,假定二叉树每个节点都有一个指向其父节点的指针,图中没有画出来,要求算法的空间复杂度必须是O(1),时间复杂度为O(h)。例如给定下面二叉树:如果指定的两个节点是401和257,那么他们的最近祖先就是节点1......