解答注意:

我写的时候考虑了:

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的更多相关文章

  1. 透过WinDBG的视角看String

    摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...

  2. JavaScript String对象

    本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...

  3. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  4. [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密

    string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...

  5. js报错: Uncaught RangeError: Invalid string length

    在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...

  6. c# 字符串连接使用“+”和string.format格式化两种方式

    参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...

  7. 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

    之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...

  8. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  9. 在多线程编程中lock(string){...}隐藏的机关

    常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...

  10. BCL中String.Join的实现

    在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...

随机推荐

  1. bzoj2818: Gcd懵逼乌斯反演

    由于是单组数据,强行不分块O(n)过 线性筛部分非常神奇,用了一个奇妙的推导(懒得写了) #include <bits/stdc++.h> using namespace std; ],f ...

  2. bzoj 4597||洛谷P4340 [Shoi2016]随机序列

    https://www.lydsy.com/JudgeOnline/problem.php?id=4597 https://www.luogu.org/problemnew/show/P4340 妄图 ...

  3. linux系统下安装PHP扩展pcntl

    1.查看当前的PHP版本并下载一个同样版本的php(我的是php5.6.22,我下的是php5.6.22) wget http://hk1.php.net/get/php-5.5.10.tar.gz ...

  4. CVE-2012-0002(MS12-020)3389远程溢出漏洞

    1:攻击机:Kali和windows皆可 2:目标机:windows XP系统(开启3389) Kali测试: search m12-020 搜索ms12-020 use auxiliary/dos/ ...

  5. Java有了GC同样会出现内存泄露问题

    1.静态集合类像HashMap.Vector等的使用最容易出现内存泄露,这些静态变量的生命周期和应用程序一致,所有的对象Object也不能被释放,因为他们也将一直被Vector等应用着. Static ...

  6. 12.Maps

    1       Maps 1.1  Map声明和访问 maps中的元素是key-value对儿,key与value之间使用冒号(:)分割.创建一个空value的map,使用[:].默认情况下,map的 ...

  7. git reflog查看所有操作记录

    git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录 具体一个例子, ...

  8. JAVA设计模式之观察者模式 - Observer

    有趣的事情发生时,可千万别错过了!有一个模式可以帮你的对象知悉现况,不会错过该对象感兴趣的事.对象甚至在运行时可决定是否要继续被通知.有了观察者,你将会消息灵通. 介绍 观察者模式的定义: 在对象之间 ...

  9. kafka系列一:单节点伪分布式集群搭建

    Kafka集群搭建分为单节点的伪分布式集群和多节点的分布式集群两种,首先来看一下单节点伪分布式集群安装.单节点伪分布式集群是指集群由一台ZooKeeper服务器和一台Kafka broker服务器组成 ...

  10. main函数与命令行参数

    main函数的概念 C语言中main函数称之为主函数 一个c程序从main函数开始执行的 下面的main函数定义正确吗? main函数的本质 main函数是操作系统调用的函数 操作系统总是将main函 ...