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”这样的 ...
随机推荐
- bryce1010专题训练——LCT&&树链剖分
LCT&&树链剖分专题 参考: https://blog.csdn.net/forever_wjs/article/details/52116682
- 113 Path Sum II 路径总和 II
给定一个二叉树和一个和,找到所有从根到叶路径总和等于给定总和的路径.例如,给定下面的二叉树和 sum = 22, 5 / \ 4 ...
- 借助sass的Maps功能使得响应式代码更有条理
原文来自这里 本文综合了原文(by Jonathan Suh)以及笔者自己的理解. Introduction 众所周知,写代码与写维护性高的代码是两回事.而涉及到响应式,代码又特别容易变的杂乱.借助s ...
- 在腾讯云centOs系统上安装nginx
1.安装nginx 下载:wget http://nginx.org/download/nginx-1.8.1.tar.gz 解压:tar -zxvf nginx-1.8.1.tar.gz 安装编译源 ...
- 基于Servlet+smartUpload的文件上传
文件上传在web应用中是非常常见的,现在我就介绍下基于servlet的文件上传,基于Struts2的文件上传可以看: 页面端代码: <%@ page language="java&qu ...
- 【排序】插入排序:最稳定:时间复杂度O(n^2)
想象着自己在玩扑克的时候抓牌,每抓到一张牌,按照从小到大的顺序排序. 如果第二张的点数小于第一张,就交换这两张牌,默认每次抓牌之前,前面的已经排好序了. 再来一张牌,与第二张比较,如果小于第二张,交换 ...
- Eclipse介绍
Eclipse是著名的跨平台开源集成开发环境(IDE).最初主要用来Java语言开发.Eclipse的本身只是一个框架平台,通过插件使其作为C/C++.Python.PHP等其他语言的开发工具.Ecl ...
- Java中常见编码格式及乱码解决方法
一:设置编码格式 1.JSP文件 charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为"UTF-8",pageEncoding="UTF-8" ...
- Perl sendmail
introduction of sendmail example send mail to multi-receiver
- Linux OpenGL 实践篇-12-procedural-texturing
程序式纹理 简单的来说程序式纹理就是用数学公式描述物体表面的纹路 .而实现这个过程的着色器我们称之为程序纹理着色器,通常在这类着色器中我们能使用的输入信息也就是顶点坐标和纹理坐标. 程序式纹理的优点 ...