算法题——确定两串乱序同构

欢迎转载,请附出处:

http://blog.csdn.net/as02446418/article/details/47145467

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

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

测试样例:

“This is nowcoder”,”is This nowcoder”

返回:true

“Here you are”,”Are you here”

返回:false

public class Same {
     public static boolean checkSam(String stringA, String stringB) {
            // write code here
            if(stringA.length()!=stringB.length())return false;

            Map<Character,Integer> map = new HashMap<Character,Integer>();
            for(int i=0;i<stringA.length();i++){
                char temp = stringA.charAt(i);
                if(map.containsKey(temp)){
                    map.put(temp,map.get(temp)+1);
                }else{
                    map.put(temp,1);
                }

            }

            for(int i=0;i<stringB.length();i++){
                char temp = stringB.charAt(i);
                if(map.containsKey(temp)){
                if(map.get(temp)>0){
                    map.put(temp,map.get(temp)-1);
                    }else{
                        return false;
                    }
                }
                    else return false;
            }       

            return true;
        }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 08:07:05

算法题——确定两串乱序同构的相关文章

1.3确定两串乱序同构

题目描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串.这里规定大小写为不同字符,且考虑字符串中有空格. 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同.保证两串的长度都小于等于5000. 测试样例: "This is nowcoder","is This nowcoder" 返回:true "Here you are","

算法题:确定两串乱序同构

题目描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串.这里规定大小写为不同字符,且考虑字符串重点空格. 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同.保证两串的长度都小于等于5000. 测试样例: "This is nowcoder","is This nowcoder" 返回:true "Here you are","

确定两串乱序同构

来源:http://www.nowcoder.com/questionTerminal/164929d4acd04de5b0ee2d93047b3b20 题目描述给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串.这里规定大小写为不同字符,且考虑字符串重点空格.给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同.保证两串的长度都小于等于5000.测试样例:"This is nowcoder&q

1.3字符串 确定两串乱序同构

方法1 1 class Same { 2 public: 3 bool checkSam(string stringA, string stringB) { 4 // write code here 5 if(stringA.size()!=stringB.size()) 6 return false; 7 sort(stringA.begin(),stringA.end()); 8 sort(stringB.begin(),stringB.end()); 9 return stringA==s

算法题——合并两条有序的链表

题目:给定两个已排序的链表,返回合并后的链表. 思路:将链表L2的每个结点插入到链表L1中,时间复杂度为O(m+n),m.n分别为两条链表的长度. 代码: 1 struct ListNode 2 { 3 int value; 4 ListNode *next; 5 ListNode(int v): value(v), next(NULL) 6 { 7 } 8 }; 9 10 ListNode *mergeSortedList(ListNode *L1, ListNode *L2) 11 { 12

【3】确定两串乱序

[题目] 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串.这里规定大小写为不同字符,且考虑字符串重点空格. 给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同.保证两串的长度都小于等于5000. [代码实现] 方法一:对字符排序比较 import java.util.*; public class Same { public boolean checkSam(String stringA,

美图笔试算法题(两个人拿石头判断输赢)

刚做完美图的笔试,两道编程题,第一道比较简单:找出一串用逗号隔开的字符串中不重复的那个数. 以下是第二道,时间有限,很多地方没来得及优化,整体逻辑应该没错. question: You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one

leetcode算法题1: 两个二进制数有多少位不相同?异或、位移、与运算的主场

/*The Hamming distance between two integers is the number of positions at which the corresponding bits are different. Given two integers x and y, calculate the Hamming distance. Note:0 ≤ x, y < 231. Example: Input: x = 1, y = 4 Output: 2 Explanation:

FCC 中级算法题 比较两个数组

Diff Two Arrays 比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素.言之,返回两个数组的差异. ComparisonOperators Array.slice() Array.filter() Array.indexOf() Array.concat() 思路: 先找出arr1中与arr2不同的部分组成新数组1,再找出arr2中与arr1不同的部分组成新数组2,在将这两个数组合并,得出两个数组不同的部分. 知识点: (1)var newArr=arr