91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Largest Number字符串排序的示例分析

發布時間:2021-11-25 15:27:51 來源:億速云 閱讀:128 作者:柒染 欄目:編程語言

本篇文章為大家展示了Largest Number字符串排序的示例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

題目大意:

給一組數字,讓這些數字字符串組成一個最大的數,這個數可能很大,用字符串表示。

思路:

采用冒泡排序,將數字字符串排序,然后將它們連接起來。

比較兩個數字字符串,通過比較s1+s2 與s2+s1的大小,來確定哪個大。

代碼如下:

class Solution {
public:
    
    string largestNumber(vector<int>& nums) {
    	vector<string > numstr;
    
    	for (int i = 0; i < nums.size(); i++)
    	{
    		stringstream ss;
    		ss << nums[i];
    		numstr.push_back(ss.str());
    	}
    	string tmp;
    	for (int i = 0; i < numstr.size(); i++)
    	{
    		for (int j = 0; j < numstr.size() - i - 1; j++)
    		{
    			if (strcmp((numstr[j] + numstr[j + 1]).data(), 
    				(numstr[j + 1] + numstr[j]).data()) > 0)
    				//strcmp((numstr[j] + numstr[j + 1]).data(), (numstr[j + 1] + numstr[j]).data())
    			{
    				tmp = numstr[j];
    				numstr[j] = numstr[j+1];
    				numstr[j + 1] = tmp;
    				tmp.clear();
    			}
    		}
    	}
    
    	string result;
    	for (int i = numstr.size() - 1; i >= 0; --i)
    	{
    	//極端情況,最大的數字是0,則直接返回"0"
    	    if (numstr[numstr.size() - 1] == "0") 
			    return "0";
    		result += numstr[i];
    	}
    
    	numstr.clear();
    	return result;
    }
};

代碼如下:

class Solution {
public:
    string largestNumber(vector<int> &num) {
        vector<string> arr;
        for(auto i:num)
            arr.push_back(to_string(i));
        sort(begin(arr), end(arr), [](string &s1, string &s2){ return s1+s2>s2+s1; });
        string res;
        for(auto s:arr)
            res+=s;
        while(res[0]=='0' && res.length()>1)
            res.erase(0,1);
        return  res;
    }
};

其中sort第三個參數用到了lambda表達式,這是C++11的一個擴展。

上述內容就是Largest Number字符串排序的示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宝坻区| 宁陵县| 贺州市| 壶关县| 东阿县| 罗定市| 新丰县| 庆云县| 宁陵县| 卢龙县| 平昌县| 庆元县| 五峰| 广宁县| 都安| 武川县| 华安县| 思茅市| 滦南县| 额尔古纳市| 灯塔市| 通河县| 七台河市| 岱山县| 三明市| 随州市| 苍南县| 桂东县| 梨树县| 临西县| 吉木萨尔县| 碌曲县| 资源县| 肃宁县| 双柏县| 达州市| 错那县| 宿州市| 炉霍县| 宁远县| 太仆寺旗|