比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母

注意事项

在 A 中出现的 B 字符串里的字符不需要连续或者有序。

您在真实的面试中是否遇到过这个题?

Yes
样例

给出 A = "ABCD" B = "ACD",返回 true

给出 A = "ABCD" B = "AABC", 返回 false

标签

解题:
 
class Solution {
public:
/**
* @param A: A string includes Upper Case letters
* @param B: A string includes Upper Case letter
* @return: if string A contains all of the characters in B return true
* else return false
*/
bool compareStrings(string A, string B) {
// write your code here // 先考虑边界条件,字符串长度如果A>B则肯定不满足条件;
if(A.size()<B.size())
return false; int letters[];//定义数组
memset(letters,,sizeof(letters)); // 将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值(也就是全部赋初值为0), 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针 for(int i=;i<A.size();i++){
letters[A[i]-'A']++; // 都是大写字母,统计每一个字幕出现的次数,最后的结果放在letters这个数组中。
} for(int i=;i<B.size();i++){
if(letters[B[i]-'A']<=) //遍历B中每一个字符,如果在B中存在的某个字符,在A中不存在,或者,在A中的数量小于在B中的数量,则返回false
return false;
else{
letters[B[i]-'A']--;
}
}
return true;
}
};

注:

(1) memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。

memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的值,第三个参数是数组的长度(字节数,不是元素个数)。

(2) 其函数原型为:

    void *memset(void*,int,unsigned);

    其中void*表示地址。

(3) 例如,下面的代码用数组做参数传递给标准函数memset(),以让其将数组设置成全0:

   

 #include<mem.h>

    void main()

    {

     int ia1[];

     int ia2[];

     memset(iai,,*sizeof(int));

     memset(ia2,,*sizeof(int));

     //

    }

  memset()的第一个实参是数组名,数组名作参数即数组作参数,它仅仅只是一个数组的起始地址而已。

 (4) void *memset(void *s,int c,size_t n)
     总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

例子:

#include

void main(){
char *s="Golden Global View"; clrscr(); memset(s,'G',);
printf("%s",s); getchar();
return ;
} 

(5) memset() 函数常用于内存空间初始化。如:

char str[100];
       memset(str,0,100);

另外:s1.size()函数返回s1中的字符个数;s1.empty()用来确认字符串是否为空;

top3000:

https://www.cnblogs.com/AllBloggers.aspx

Lintcode--001(比较字符串)的更多相关文章

  1. Lintcode 157. 判断字符串是否没有重复字符

    ------------------------ 因为字符究竟是什么样的无法确定(比如编码之类的),恐怕是没办法假设使用多大空间(位.数组)来标记出现次数的,集合应该可以但感觉会严重拖慢速度... 还 ...

  2. 【LintCode】转换字符串到整数

    问题描述: 实现atoi这个函数,将一个字符串转换为整数.如果没有合法的整数,返回0.如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-21 ...

  3. lintcode:strStr 字符串查找

    题目: 字符串查找 字符串查找(又称查找子字符串),是字符串操作中一个很有用的函数.你的任务是实现这个函数. 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source ...

  4. LintCode 55 比较字符串

    比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母 注意事项 在 A 中出现的 B 字符串里的字符不需要连续或者有序.   样例 给出 A = "ABC ...

  5. 【LintCode·容易】字符串置换

    字符串置换 描述: 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换. 置换的意思是,通过改变顺序可以使得两个字符串相等. 样例: "abc" 为 &qu ...

  6. 华为机试001:字符串最后一个单词的长度(华为OJ001)

    华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开. 提交网址: http://www.nowcoder.com/practice/8c949ea5f36f422594b ...

  7. [LintCode]判断一个字符串是否包含另一个字符串的所有字符

    问题描述: 比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母. 样例 给出 A = "ABCD" B = "ACD",返 ...

  8. 001——php字符串中的字符串定义

    <?php /** * 一.定义字符串: * ''单引号 ""双引号 <<<定界符 */ /* $url='http://baidu.com'; $baid ...

  9. LintCode 53---翻转字符串中的单词

    public class Solution { /* * @param s: A string * @return: A string */ public static String reverseW ...

  10. LintCode 29---交叉字符串

    public class Solution { /** * @param s1: A string * @param s2: A string * @param s3: A string * @ret ...

随机推荐

  1. 设计模式 ( 二十一 ):Vistor访问者模式 -- 行为型

    1.概述 在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有 ...

  2. PCanywhere/teamviewer/RDP/ultraVNC/tigerVNC/realVNC/Xmanager

    PCanywhere/teamviewer/RDP/ultraVNC/tigerVNC/realVNC/Xmanager 1, 通常应用场景一般CentOS/RHEL等linux系统不配置安装Desk ...

  3. javascript 单个图片的淡入淡出效果和多张图片的淡入淡出效果

    最近刚好在看之前妙趣网站的javascript 初级运动教程,教程里说设置图片的透明度使用了一个变量.这种方法确实不错,但是燕姐喜欢麻烦.就用自己的理解方法写了一遍.其中也是各种坑.现在先把一个图片的 ...

  4. DedeCMS源码安装

    一.源码下载地址 可以从以下网站下载DedeCMS源码进行安装,这里我下载了AB模板网的一个服装网站源码来演示DedeCMS源码的安装 http://www.adminbuy.cn/dedecms/2 ...

  5. 类型兼容原则(C++)

    类型兼容原则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代. 通过公有继承,派生类得到了基类中除构造函数.析构函数之外的所有成员.这样,公有派生类实际具备了基类的所有功能,凡是基类能解 ...

  6. IOS-连接

    http://blog.sina.com.cn/s/articlelist_2659739627_0_2.html

  7. DS18B20

    DS18B20驱动 [ 2012-5-14 12:01:00 | By: 吴师傅 ]   14 推荐 一.概述 DS18B20是一种单总线数字温度传感器.測试温度范围-55℃-125℃,温度数据位可配 ...

  8. [转载]ios app 发布遇到的问题uinewsstandapp=true

    原文地址:ios app 发布遇到的问题uinewsstandapp=true 作者:Capacity To include newsstand features, the info.plist mu ...

  9. c++中基本的语法问题

    的输出是? 答案:构造函数的初始化列表 字符串转化为整形的代码: enum Status{ kValid = 0,kInvalid }; int g_nStatus = kValid; int Str ...

  10. JavaScript经典魔力代码

    是什么使得JavaScript不同于其他程序设计语言,在浏览器修饰方面表现出其优异的特性?毫无疑问,JavaScript在Web应用领域受到的好评,既源于它自身灵活的动态特性,也源于浏览器对它充分的支 ...