c++-string-1

解答注意:
我写的时候考虑了:
1) " my"(设置flag,为true时表示上一个是非空格字符)
2) "hello John"(最后不是空格结尾,但应该count++)
不过还是WA一次,因为第一次是把if(s[i] != ' ')放在了后面,则对这种"a",会判断错误。
int countSegments(string s) {
int count = ;
bool flag = false;
int i;
for (i = ; i < s.length(); i++) {
if(s[i] != ' ') {
flag = true;
//continue;
}
if(flag == true && s[i] == ' ' || flag == true && i == s.length() - ) {
count ++;
flag = false;
}
}
return count;
}

解题思路:错误情况只有一种,即一个字母匹配了多个不同字母,如"foo"和"bar"。但是map只保证key是唯一的,所以需要检查key-value对是否唯一。
所以在插入新的之前,需要检查是不是已经有了这样的value-key对。几次WA都是没检查这个,不走心啊。
bool isIsomorphic(string s, string t) {
map<char,char> m;
int i;
for (i = ; i < t.length(); i++) {
if (m.find(t[i]) != m.end()) {
if (m.find(t[i])->second == s[i]) {
continue;
} else {
return false;
}
} else {
map<char,char>::iterator it;
for (it = m.begin(); it != m.end(); it++)
if(it->second == s[i])
return false;
m.insert(pair<char,char>(t[i], s[i]));
}
}
return true;
}

解题思路:这个直接模拟加法的过程就好,从后往前加。昨天脑子卡了,一直在纠结num1和num2长度不同是不是要分别考虑,加了奇怪的判断,结果老是有错。
其实直接给不足的位置补零,然后统一操作就好了啊摊手。哦,string这个insert函数蛮灵活的。
string addStrings(string num1, string num2) {
string str="";
int flag = ;
int len;
int val = ;
int len1 = num1.length();
int len2 = num2.length();
if (len1 > len2) {
len = len1;
// insert(pos, len, char)
num2.insert(num2.begin(), len1-len2, '');
} else {
len = len2;
num1.insert(num1.begin(), len2-len1, '');
}
int i;
for (i = len-; i >= ; i--) {
val = num1[i] - '' + num2[i] - '' + flag;
flag = val / ;
str.insert(str.begin(), val % + '');
}
if (flag != )
str.insert(str.begin(), flag + '');
return str;
}
c++-string-1的更多相关文章
- 透过WinDBG的视角看String
摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密
string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...
- js报错: Uncaught RangeError: Invalid string length
在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...
- c# 字符串连接使用“+”和string.format格式化两种方式
参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...
- 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed
之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
- 在多线程编程中lock(string){...}隐藏的机关
常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...
- BCL中String.Join的实现
在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...
随机推荐
- flask_之URL
URL篇 在分析路由匹配过程之前,我们先来看看 flask 中,构建这个路由规则的两种方法: 通过 @app.route() decorator 通过 app.add_url_rule,这个方法的签名 ...
- [软件工程基础]2017.11.04 第八次 Scrum 会议
具体事项 项目交接燃尽图 每人工作内容 成员 已完成的工作 计划完成的工作 工作中遇到的困难 游心 #10 搭建可用的开发测试环境:#9 阅读分析 PhyLab 后端代码与文档:#8 掌握 Larav ...
- tensorflow:实战Google深度学习框架第四章01损失函数
深度学习:两个重要特性:多层和非线性 线性模型:任意线性模型的组合都是线性模型,只通过线性变换任意层的全连接神经网络与单层神经网络没有区别. 激活函数:能够实现去线性化(神经元的输出通过一个非线性函数 ...
- matplotlib 知识点13:绘制散点图(scatter函数精讲)
散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合. 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间 ...
- Java EE学习笔记(六)
初识MyBatis 1.MyBatis的定义 1).MyBatis(前身是iBatis)是一个支持普通SQL查询.存储过程以及高级映射的持久层框架. 2).MyBatis框架也被称之为ORM(Obje ...
- 梳理一下我理解的aop
在看了很多网上的资料和记录之后,我大概捋了下SpringAOP的各种阶段: 基本的advice编程,利用ProxyFactory拿代理类 利用spring把ProxyFactory,advice等be ...
- 删除cookie时遇到的坑
曾经有个“导出中”的需求,我用iframe实现下载对话框和cookie轮询验证token去解决的,但是昨天又发现了一个新问题: 因为前台需要提示导出失败的详细信息,这个信息我是在token返回0的时候 ...
- 【Linux】Tmux分屏
1.Tmux Arch维基: https://wiki.archlinux.org/index.php/Tmux_(简体中文) 官方WIKI: https://github.com/tmux/tmux ...
- POJ 3461 kmp
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40168 Accepted: 16135 Descript ...
- .NET 通过 NPOI 操作 Excel
目录 .NET 通过 NPOI 操作 Excel 第一步:通过 NuGet 获取 NPOI 包并引入程序集 第二步:引入 NPOI 帮助类 第三步:在程序中调用相应的方法对数据进行导出导入操作 将 D ...