zoukankan      html  css  js  c++  java
  • 211. 字符串置换

    描述

      给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。

      置换的意思是,通过改变顺序可以使得两个字符串相等。

    样例

      "abc" 为 "cba" 的置换。

      "aabc" 不是 "abcc" 的置换。

    代码

    /*
        给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。
        置换的意思是,通过改变顺序可以使得两个字符串相等。
        
        思路:用一个数组储存A字符个数,然后遍历B,相应字符个数减1,若为负,则不是置换 
    */
    
    class Solution {
    public:
        /*
         * @param A: a string
         * @param B: a string
         * @return: a boolean
         */
        bool Permutation(string &A, string &B) {
           int a[256] = {0};                            // 储存ASCII码个数 
           if(A.length() != B.length()) {                // 若长度不相同,不为置换 
                   return false;
           }
            for(int i=0; i<A.length(); ++i) {            // 遍历A,储存字符个数 
                a[A[i]-'']++;
            }
            for(int i=0; i<B.length(); ++i) {            // 比较A和B 
                a[B[i]-'']--;                            // ASCII码中''序号为0 
                if(a[B[i]-''] < 0)     return false;
            }
            
            return true;
        }
    };
  • 相关阅读:
    排列组合
    从$a_n=f(n)$的角度理解数列中的表达式$a_{n+1}=frac{k}{a_n}$
    洛必达法则的应用
    三角函数专题
    和差角公式的证明
    利用导数证明不等式
    常用数学模型整理
    教给学生知识的本源
    争鸣|两个易混概率题
    es6数组的复制
  • 原文地址:https://www.cnblogs.com/coderJiebao/p/LintCode211.html
Copyright © 2011-2022 走看看