• Cracking the coding interview--Q1.2


    题目

    原文:

    Write code to reverse a C-Style String. (C-String means that “abcd” is represented as five characters, including the null character.)

    译文:

    写代码翻转一个C风格的字符串。(C风格的意思是"abcd"需要用5个字符来表示,包含末尾的 结束字符)

    解答

    这道题如果就是要考察你有没有注意到C风格字符串最后的那个结束符,那我觉得还是像书 上写的那样,在代码中有所体现。代码如下:

    java:

    package cha1;
    
    public class A002 {
        
        public static char[] swap(char[] cstr) {
            int len = cstr.length;
            char[] cs = new char[len];
            for (int i=0; i<len; i++) {
                cs[len-i-1] = cstr[i];
            }
            return cs;
        }
        
        public static void main(String[] args) {
            char[] cs = new char[5];
            cs[0] = 'l';
            cs[1] = 'o';
            cs[4] = 'u';
            System.out.println(swap(cs));
        }
    }

    c++

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    void swap(char &a, char &b){
        a = a^b;
        b = a^b;
        a = a^b;
    }
    
    void reverse2(char *s){
        int n = strlen(s);
        for(int i=0; i<n/2; ++i)
            swap(s[i], s[n-i-1]);
    }
    
    void reverse1(char *s){
        if(!s) return;
        char *p = s, *q = s;
        while(*q) ++q;
        --q;
        while(p < q)
            swap(*p++, *q--);
    }
    
    int main(){
        char s[] = "1234567890";
        reverse1(s);
        cout<<s<<endl;
        return 0;
    }



  • 相关阅读:
    js刷新
    getHibernateTemplate()为NUll
    struts2+hibernate+spring+jquery返回json List列表
    windowopen
    web配置详解
    缓存
    uuid-不好之处
    多对多转化一对多
    多对多拆成两个 多对一
    我的github地址账号和密码
  • 原文地址:https://www.cnblogs.com/549294286/p/3184307.html
Copyright © 2020-2023  润新知