当前位置: 首页 > news >正文

数据结构与算法 - 字符串

题型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:https://leetcode.com/problems/subsets-ii/

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

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

相关文章:

  • c语言——‘\0’ ,‘0’, “0” ,0之间的区别
  • Emgucv使用记录-------切忌点一
  • jQuery 效果 - animate() 方法
  • SFB 项目经验-22-如何查看存储的管理IP地址
  • 使用文件映射和信号量来进程间通信
  • python 类定义 继承
  • ubuntu Server 设置主机静态 ip地址
  • jq实现jsonp
  • Java GC -- G1
  • 决策树-过程
  • PHP框架中最喜欢的WindFramework
  • jqMobi 更小更快的移动框架
  • 二元决策图(Binary decision diagram)
  • 高级 IO
  • 如何优雅的设计 Java 异常
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 345-反转字符串中的元音字母
  • CSS实用技巧干货
  • ES2017异步函数现已正式可用
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • JS变量作用域
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • node.js
  • React 快速上手 - 07 前端路由 react-router
  • SQLServer之索引简介
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 七牛云假注销小指南
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何利用MongoDB打造TOP榜小程序
  • 什么软件可以剪辑音乐?
  • 学习笔记:对象,原型和继承(1)
  • 用mpvue开发微信小程序
  • 怎样选择前端框架
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​2020 年大前端技术趋势解读
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (C语言)共用体union的用法举例
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (汇总)os模块以及shutil模块对文件的操作
  • (三)uboot源码分析
  • (四)图像的%2线性拉伸
  • (一)80c52学习之旅-起始篇
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)Sublime Text3配置Lua运行环境
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)人的集合论——移山之道
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET处理HTTP请求