zoukankan      html  css  js  c++  java
  • 字符串之移位

    1.循环左移

    void reverse(char *start,char *end)
    {
    	
    	char temp = '';
    	while(start <end)
    	{
    		temp = *start;
    		*start = *end;
    		*end = temp;
    		start++;
    		end--;
    	}
    
    }
    
    
    int main()
    {
    	char str[] = "abcdefghi";
    	int m = 3;
    	reverse(str,str + m -1);
    	reverse(str +m,str + strlen(str) - 1);
    	reverse(str,str + strlen(str) - 1);
    	cout << str <<endl;
       
    	return 0;
    }
    

    2.字符串转置,是循环移动的一种特殊情况

    void reverse(char *str)
    {
    	int length = strlen(str);
    	char *start = str; 
    	char *end= str + length -1;
    	char temp = '';
    	while(start <end)
    	{
    		temp = *start;
    		*start = *end;
    		*end = temp;
    		start++;
    		end--;
    	}
    
    }
    

    3.移动包含问题

    字符串str1是否可以通过移动得到str2,只需要通过判断str2是否在str1str1中即可。

    4.字符串单词翻转

    "I am from Wuhan." -> "Wuhan. from am I"

    void reverse(char *start,char *end)
    {
    	
    	char temp = '';
    	while(start <end)
    	{
    		temp = *start;
    		*start = *end;
    		*end = temp;
    		start++;
    		end--;
    	}
    
    }
    
    void ReverseSentence(char *str)
    {
    	char *start = str;
    	char *end = str;
    	while (*end != '')
    	{
    		if (*end == ' ')
    		{
    			reverse(start,end -1);
    			end++;
    			start = end;
    		}
    		else
    		{
    			end++;
    		}			
    	}
    	reverse(start,end - 1);
    	reverse(str,end-1);
    }
    
  • 相关阅读:
    打造自定义 eslint
    二叉树(三): 二叉查找树
    二叉树(二): 补充
    二叉树(一): 遍历
    redux 源码浅析
    react-redux 源码浅析
    WebComponents使用以及思考
    SHELL 语法以及实例
    React-Native 原生 APP 更新
    关于 cdn 在项目中的使用
  • 原文地址:https://www.cnblogs.com/liuweilinlin/p/3281328.html
Copyright © 2011-2022 走看看