211 字符串置换

原题网址:https://www.lintcode.com/problem/string-permutation/description

描述

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

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

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

样例

"abc" 为 "cba" 的置换。

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

标签

排列

字符串处理

思路:只要判断两个字符串中相同字符数量是否一致就好,需要两个哈希表统计各自的字符及数量,然后对比。

AC代码:

class Solution {
public:
    /**
     * @param A: a string
     * @param B: a string
     * @return: a boolean
     */
    bool Permutation(string &A, string &B) {
        // write your code here
    int sizeA=A.size();
    int sizeB=B.size();
    if (sizeA!=sizeB)
    {
        return false;
    }
    map<char,int> m1;
    map<char,int> m2;
    for (int i=0;i<sizeA;i++)
    {
        if (m1.find(A[i])!=m1.end())//统计字符数量;
        {
            m1[A[i]]++;
        }
        else
        {
            m1[A[i]]=1;
        }
        if (m2.find(B[i])!=m2.end())//统计字符数量;
        {
            m2[B[i]]++;
        }
        else
        {
            m2[B[i]]=1;
        }
    }

    for (int i=0;i<sizeA;i++)
    {
        if (m1[A[i]]!=m2[A[i]])
        {
            return false;
        }
    }
    return true;
    }
};

还可以对两个字符串排序,然后比较排序后的字符串是否相等。参考:https://blog.csdn.net/qiujiahao123/article/details/77714776

原文地址:https://www.cnblogs.com/Tang-tangt/p/9190485.html

时间: 2024-10-14 12:58:55

211 字符串置换的相关文章

字符串置换

题: 解: 这道题比较简单,不知道是不是我理解错题意了. 我的思路是将两个字符串分割并保存到数组里面,再由数组保存到集合里面,最后对两个集合进行排序并判断相同索引下的字符是否相同. 代码: 1 package com.lintcode; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 import java.util.Scanner; 7 8 /** 9 * 字符

字符串置换问题

最近在lintcode上刷题,遇到这一问题. 问题描述: 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换. 置换的意思是通过改变顺序可以使得两个字符串相等.输入样例:"abc" 为 "cba" 的置换."abbc" 不是 "abcc" 的置换. 解决思路: 可通过排序来解决此问题,将其转换为字符数组,首先判断字符串长度是否相等,如果不相等则不是置换,二是判断为空字符串这一特殊情况,最后可通过Arra

字符串置换 python3

给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换. 置换的意思是,通过改变顺序可以使得两个字符串相等. 思路:将字符串排序后比较 class Solution: """ @param A: a string @param B: a string @return: a boolean """ def Permutation(self, A, B): # write your code here list1 = [ i fo

21-1字符串相关api

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { font-family: "Microsoft YaHei", serif; } body, dl, dd, p, h1, h2, h3, h4, h5, h6 { m

lintcode入门篇七

211. 字符串置换 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换. 置换的意思是,通过改变顺序可以使得两个字符串相等. 样例 Example 1: Input: "abcd", "bcad" Output: True Example 2: Input: "aac", "abc" Output: False class Solution: """ @param A:

POJ 1026 Cipher(置换)

                                                               Cipher Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19502   Accepted: 5239 Description Bob and Alice started to use a brand-new encoding scheme. Surprisingly it is not a P

Windows批处理(cmd/bat)常用命令

前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效. 在Windows中善用批处理可以简化很多重复工作 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见 的批处理包含两类:DOS批处

win 批处理

前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效. 在Windows中善用批处理可以简化很多重复工作 什么是批处理 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.批处理文件的扩展名为bat. 目前比较常见 的批处理包含两类:DOS批处

批处理bat 命令

1.批处理常用符号: - echo 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置 语法:@echo [{ on|off }]  echo{"显示信息"} - rem 注释命令,只是起一个注释的作用,便于别人阅读和你自己日后修改 - pause 暂停,将显示下面的消息:Press any key to continue . . . - call 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序 语法: call [Drive:][