zoukankan      html  css  js  c++  java
  • 确定两串乱序同构 牛客网 程序员面试金典 C++ Python

    确定两串乱序同构 牛客网 程序员面试金典 C++ Python

    • 题目描述

    • 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串中的空格。

    • 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。

    • 测试样例:

    • "This is nowcoder","is This nowcoder"

    • 返回:true

    • "Here you are","Are you here"

    • 返回:false

    C++

    class Same {
    public:
        //run:8ms memory:484k
        bool checkSam(string stringA, string stringB){
            if("" == stringA && "" == stringB) return true;
            int sizeA = stringA.size();
            int sizeB = stringB.size();
            if(sizeA != sizeB) return false;
            int A[256] = {0};
            for(int i =0;i<sizeA;i++){
                A[stringA[i]]++;
                A[stringB[i]]--;
            }
            for(int i = 0; i<256;i++)
                if(A[i] != 0) return false;
            return true;
        }
    };

    Python

    class Same:
        def checkSam(self, stringA, stringB):
            if("" == stringA and "" == stringB): return True
            sizeA = len(stringA)
            sizeB = len(stringB)
            if(sizeA != sizeB): return False
            lt=[0] * 256
            for i in range(0,sizeA):
                lt[ord(stringA[i])] +=1
                lt[ord(stringB[i])] -=1
            for i in range(0,256):
                if lt[i] != 0: return False
            return True
  • 相关阅读:
    hdu-6166(最短路+二进制分组)
    hdu-1238(kmp+枚举)
    hdu-3294(最长回文子串)
    hdu-3068(最长回文子串-manacher)
    二维凸包 Graham扫描算法 +hdu 1392
    经典技术书籍
    hdu 5365 计算几何 给几个点判断是否为正方形
    线性素数筛
    关于大数的题
    树状数组的简介和线段树基础操作
  • 原文地址:https://www.cnblogs.com/vercont/p/10210310.html
Copyright © 2011-2022 走看看