比较两个字符串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. 创建.NET应用程序所经历的步骤

    1.使用某种.NET兼容语言(如C#)编写应用程序.2.把代码编译为(CIL),存储在程序集中.3.在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用JIT( ...

  2. Altium Designer中使用差分对布线

    Contents Language 在原理图中定义差分对 在PCB中查看和管理差分对 在PCB中定义差分对 适用的设计规则 设置设计规则的辖域 使用差分对向导定义规则 差分对布线 包括管脚交换的FPG ...

  3. 有意思的数学题:Trapping Rain Water

    LeetCode传送门 https://leetcode.com/problems/trapping-rain-water/ 目标:找出积木能容纳的水的“面积”,如图中黑色部分是积木,蓝色为可容纳水的 ...

  4. Delphi 在使用exports中的方法 带参数的用法

    最近项目中,需要在一个bpl中调用另一个bpl中的单元的方法, 方法如下: 在被调用的单元中定义: procedure Inner_Ex(VoucherType: TVoucherType); exp ...

  5. guestfish 修改 image file

    Example guestfish sessionSometimes, you must modify a virtual machine image to remove any traces of ...

  6. jquery中的属性和css

    jQuery中的属性用于获取或设置元素的属性 1.attr(),获取或设置所有相匹配的元素的属性值:removeAttr("attr"),移除所有相匹配的元素的属性 //html ...

  7. Python:ajax 学习笔记

    什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...

  8. NumberSpinner( 数字微调) 组件

    本节课重点了解 EasyUI 中 Spinner(微调)组件的使用方法,这个组件依赖于Numberbox(数值输入框)和 Spinner(微调)组件. 一. 加载方式//class 加载方式<i ...

  9. Webstorm10.0.3破解程序及汉化包下载、Webstorm配置入门指南

    核心提示: WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscri ...

  10. 将GridView中的数据导出到Excel代码与注意事项

    //gv:需要导出数据的GridView,filename:导出excel文件名 public void ExportToExcel(GridView gv, string filename) { s ...