码迷,mamicode.com
首页 > 其他好文 > 详细

【ACM从零开始】LeetCode OJ-Valid Anagram

时间:2015-10-07 22:55:09      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:
You may assume the string contains only lowercase alphabets.

题目大意:比较两个字符串是否有相同的字母个数组成。

解题思路:这里想到两种方法。

思路一:

建立一个表,记录字符串s里每个字符的个数,再与字符串t比对。

思路二:

将两个字符串的元素排序,然后比较大小。

首先是思路二的代码,提示TLE,可能是用冒泡排序导致时间复杂度过高,有空再修改

class Solution {
public:
    bool isAnagram(string s, string t) {
        char* sArray = new char(s.length()+1);
        char* tArray = new char(t.length()+1);
        sprintf(sArray ,"%s" , s.c_str());
        sprintf(tArray ,"%s" , t.c_str());
       
        BubbleSort(sArray,s.length()+1);
        BubbleSort(tArray,t.length()+1);
       
        s = sArray;
        t = tArray;
        return s==t;
    }
   
    void BubbleSort(char *p,int n)
    {
        for(int i = 0;i < n;i++)
        {
            for(int j = 0;j < n-i-1;j++)
            {
                if(p[j] > p[j+1])
                {
                    char tmp = p[j];
                    p[j] = p[j+1];
                    p[j+1] = tmp;
                }
            }
        }
    }
};

 

【ACM从零开始】LeetCode OJ-Valid Anagram

标签:

原文地址:http://www.cnblogs.com/shvier/p/4859634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!