zoukankan      html  css  js  c++  java
  • 一句话单词倒置

    两种方式,第一,通过指针;第二,通过数组下标
    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;
    		}
    	}
    }
    


  • 相关阅读:
    浙大PAT CCCC L3-001 凑零钱 ( 0/1背包 && 路径记录 )
    二分图匹配
    Codeforces 939E Maximize ( 三分 || 二分 )
    冲刺第二周第七天
    冲刺第二周第六天
    冲刺第二周第五天
    构建之法阅读笔记04
    冲刺第二周第四天
    构建之法阅读笔记03
    构建之法阅读笔记02
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369360.html
Copyright © 2011-2022 走看看