zoukankan      html  css  js  c++  java
  • 1.3确定两串乱序同构

    题目描述

    给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串中有空格。
     
    给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。

    测试样例:

    "This is nowcoder","is This nowcoder"
    返回:true
    "Here you are","Are you here"
    返回:false
     
    解法
    ①排序字符串。使用快速排序,则时间复杂度O(nlogn)
    ②使用哈希表,检查两个字符串的各字符数是否相同,一个数组即可。
    1. //1.3 确定两串乱序同构
    2. classSame{
    3. public:
    4. bool checkSam(string stringA, string stringB){
    5. // write code here
    6. int lenA = stringA.size();
    7. int lenB = stringB.size();
    8. //如果长度都不同,则一定异构
    9. if(lenA != lenB)
    10. {
    11. returnfalse;
    12. }
    13. //用哈希表方法,以数组表示
    14. int letters[256]={0};
    15. int i=0;
    16. for(i=0; i<lenA;++i)
    17. {
    18. int str = stringA[i];
    19. ++letters[str];
    20. }
    21. for(i=0; i<lenB;++i)
    22. {
    23. int strB = stringB[i];
    24. --letters[strB];
    25. if(letters[strB]<0)
    26. returnfalse;
    27. }
    28. returntrue;
    29. }
    30. };
     
     





  • 相关阅读:
    Spring Cloud Eureka的学习
    Maven环境配置
    Maven解决静态资源过滤问题
    Linux Desktop Entry文件配置解析
    iptables规则持久化
    Markdown学习总结
    输vim /etc/rc.d/init.d/mysqld 报错 …..localdomain.pid
    UE4 集成讯飞听写插件
    单机梦幻西游
    使用A*寻路小记
  • 原文地址:https://www.cnblogs.com/gxcdream/p/4912376.html
Copyright © 2011-2022 走看看