• 一句话单词倒置


    两种方式,第一,通过指针;第二,通过数组下标
    void LoopMove(char * l, char * r)
    {
    	char temp;
    	while(l<r)
    	{
    		temp = *l;
    		*l = *r;
    		*r = temp;
    		++l;
    		--r;
    	}
    }
    
    void ReverseStr(char * str)
    {
    	char *l,*r;
    	r = str;
    	l = str;
    	LoopMove(l, r+strlen(str)-1);
    	while(*r!='')
    	{
    		l = r+1;
    		r = l;
    		while(*r!=' ' && *r!='')
    			++r;
    		r = r-1;
    		LoopMove(l, r);
    		l = r+1;
    		r = l;
    	}
    }
    
    int main()
    {
    	char str[]="i come from tianjin.";
    	cout<<strlen(str)<<endl;
    	ReverseStr(str);
    	cout<<str<<endl;
    	return 0;
    }


    public class StrReverse {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String str="hello i tianjin.";
    		char []s = str.toCharArray();
    		reverseWord(s);
    		System.out.println(new String(s));
    	}
    	
    	public static void reverseWord(char []s){
    		int l = 0;
    		int r = 0;
    		reverse(s, l, r+s.length-1);
    		for(int i=0; i<=s.length;++i){
    			if(i==(s.length)||s[i]==' '){//注意顺序,否则越界错误
    				r = i-1;
    				System.out.println(l+" "+r);
    				reverse(s, l, r);
    				System.out.println(new String(s));
    				l = i+1;
    			}
    		}
    	}
    	
    	public static void reverse(char []s, int l, int r){
    		char temp;
    		for(int i=0; i<=(r-l)/2; i++)
    		{
    			temp = s[l+i];
    			s[l+i] = s[r-i];
    			s[r-i] = temp;
    		}
    	}
    }
    


  • 相关阅读:
    剑指Offer-二维数组中的查找
    我的心灵鸡汤
    生活经验总结与感受
    剑指offer-二叉树按之字形打印
    5月总结与回顾
    一致性Hash原理
    B树和B+树的区别
    Java内存区域模型
    解决Hash冲突的四种方法
    Go Web项目搭建-Gin+GORM连接MySQL数据库
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369360.html
Copyright © 2020-2023  润新知