• 数据结构与算法


    题型1:如何统计字符中有多少个单词?

    方法1:使用空格作为分隔。如果测出某一个字符为非空格,而它前面的单词是空格,则表示“新的单词开始了”此时单词数count累加1.如果当前字符为非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,count不应再累加1.

    方法2:使用sstream中的isstreamstring实现单词的分隔,将字符串赋值给isstreamstring,以空格将单词分开。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    char string[BUFFERSIZE];
    int count=0,word=0;
    while(string[i]!='')
    {
        if(c==' ')
            word=0;
        else if(word==0)
        {
            word=1;
            count++;
        }
        i++;
    }

    题型2:如何将字符串逆序

    方法1:普通逆序,从尾到头输入另一数组中

    方法2:原地逆序,将两个指针分别指向字符串的头部和尾部,将头部和尾部使用一个临时变量,进行交换,然后头部指针后移,尾部指针前移。

    方法3:不允许使用临时变量,可以使用异或来将换前后指针指向的字符。

    复制代码
    while(p>s)
    {
        *p=*p^*s;
        *s=*p^*s;
        *p=*p^*s;
        p--;
        s++;
    }
    复制代码

    题型3:如何找出一个字符串中第一个只出现一次的字符

    方法1:使用hash表记录每个字符出现的次数,以字符作为数组下标,数组大小为256.第一遍扫描元素将进行字符统计,第二遍从头到尾找到第一个计数为1的字符。

    题型4:字符串的所有子集

    参考leetcode:https://leetcode.com/problems/subsets-ii/

    题型5:求字符串的所有排列

    参考leetcode:https://leetcode.com/submissions/detail/23682769/

  • 相关阅读:
    python yield yield from
    python isinstance()与type()的区别
    python isinstance用法
    python 展开嵌套的序列
    python getmtime() 最近修改文件内容的时间
    python getctime() 文件最后一次的改变时间
    python getatime() 查看文件的访问时间
    python模拟随机游走
    getopt例子
    matplotlib 代码风格
  • 原文地址:https://www.cnblogs.com/alantu2018/p/8460830.html
Copyright © 2020-2023  润新知