博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构与算法 - 字符串
阅读量:7066 次
发布时间:2019-06-28

本文共 729 字,大约阅读时间需要 2 分钟。

题型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]!=
'\0'
)
{
    
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:

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

参考leetcode:

转载地址:http://acxll.baihongyu.com/

你可能感兴趣的文章
减治算法求n个数中的最小数的位置
查看>>
css3学习 理论之文本
查看>>
Linux 安装python3.7.0
查看>>
<Linux命令行学习 第二节> CentOS - 远程登录管理工具
查看>>
[转]BEHAVOUR TREE2
查看>>
深入理解计算机操作系统(十)
查看>>
XML和Schema命名空间详解
查看>>
npm ERR! Unexpected end of JSON input while parsing near '...inimist":"^1.2.0"}
查看>>
Mybatis Generator逆向工程的使用
查看>>
设计模式(八)_门面模式
查看>>
BFS - 水题
查看>>
软件面试常见题目(转帖)
查看>>
[LeetCode] NO. 387 First Unique Character in a String
查看>>
理解管理信息系统
查看>>
UVA 11991 - Easy Problem from Rujia Liu?
查看>>
CF1101E Polycarp's New Job
查看>>
3d角色模型 制作 全过程 。3d max 。3d role model making process.3d Max
查看>>
开学第一周
查看>>
Pandas学习笔记,groupby的一些用法
查看>>
浅谈C#中的延迟加载“.NET研究”(1)——善用委托
查看>>