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

溫馨提示×

溫馨提示×

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

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

Java如何提取不重復的整數

發布時間:2021-12-17 16:45:28 來源:億速云 閱讀:253 作者:iii 欄目:云計算

本篇內容介紹了“Java如何提取不重復的整數”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1、題目描述

輸入一個int型整數,按照從右向左的閱讀順序,返回一個不含重復數字的新的整數。

輸入描述:

輸入一個int型整數

輸出描述:

按照從右向左的閱讀順序,返回一個不含重復數字的新的整數

輸入例子:

9876673

輸出例子:

37689

2、程序

方案一

基本思路:初值設為0,然后讀到和0相等的輸出,然后基準值加1,即下一步與1比較相等輸出,這樣就避免了重復。

#include<iostream>
#include<string>

using namespace std;

int main(){
    int a[10]={0};
    string str;
    getline(cin,str);
    int num = str.size();
    int i;
    for(i=num-1;i>=0;i--){
        if(a[str[i]-'0']==0){
            cout<<str[i];
            a[str[i]-'0']++;
        }
    }
    return 0;
}

方案二

基本思路:借助容器進行操作。

//set用來記錄已經被我們記錄了的不重復的數字
//queue保證從后往前以此輸出
#include <iostream>
#include <set>
#include <queue>
using namespace std;
int main()
{
    int n;
    cin>>n;
    set<int> temp;
    queue<int> res;
    while(n%10){
        if(temp.find(n%10)==temp.end()){
            res.push(n%10);
            temp.insert(n%10);
        }
        n/=10;
    }
    while(!res.empty()){
        cout<<res.front();
        res.pop();
    }
    return 0;
}

方案三

基本思路:以上方案均適用于數字,不具有普遍性。直接以字符串形式輸入,這樣既適用于字符串,也適用于數字。利用容器進行操作,這里位置和數值對應關系,我們可以采用map容器。

#include <iostream>
#include <string>
#include <map>
#include <stdio.h>
#include <algorithm>

using namespace std;

int main(){
	string str;
	
	while(cin>>str)
	//等待輸入結束
    //當然,這一步可以采用getline()和for()循環替代,即getline(cin,str)獲取輸入,然后for(int i=0;i<str.length();i++)控制循環輸入
	{
		map<char,int> map_input;
		//直接將數字作為字符串輸入,這樣的方案較好
		for(int i=str.size()-1;i>=0;i--){
		//for(int i=str.length()-1;i>=0;i--)
		//起始位置為str.size()-1而不是str.size(),終點是0而不是1,下標為size()的數值越界了(下標從0開始的)
			if(map_input.find(str[i])!=map_input.end()){
			//用find函數來定位數據出現位置,它返回的一個迭代器,當數據出現時,它返回數據所在位置的迭代器,如果map中沒有要查找的數據,它返回的迭代器等于end函數返回的迭代器
                        //把最后一個作為基準值進行比較,即key選取has.end()這一元素
				map_input[str[i]]++;
				//如果查找到與參考值相等的,則將該key對應的value加1
			}
			else{
				map_input[str[i]]=1;
				//沒有與參考值相等的key,value均為1,我們值輸出value值為1的key
				cout<<str[i];	
			}
		}
		cout<<endl;
	}	
}

注意:

(1)獲取輸入以及循環的基本操作:

方法一:

while(cin >> str){
    //處理函數
}

方法二:

getline(cin,str);
//獲得輸入并將輸入的數值綁定到str變量
for(int i=0;i<str.length();i++){
    //處理函數
}

(2)這里涉及到一個很重要的操作,即選擇字符串中的某一些數據輸出,這里不是所謂的刪除操作,那樣問題就復雜化了,我們可以轉化為有條件的輸出,例如:

            if(map_input.find(str[i]) != map_input.end())
            //把最后一個作為基準值進行比較,即key選取has.end()這一元素
                map_input[str[i]]++;
            else
            {
                map_input[str[i]] = 1;
                cout<< str[i];
            }

這里要求輸出不重復的字符,則我們應該采取這樣的思路:如果不是重復的字符則輸出,重復的直接跳過。

“Java如何提取不重復的整數”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

枣庄市| 乡城县| 土默特右旗| 基隆市| 青阳县| 苗栗市| 铅山县| 沁水县| 汕头市| 东山县| 沁源县| 随州市| 集安市| 西充县| 顺平县| 错那县| 微博| 颍上县| 荔浦县| 白沙| 化德县| 武宁县| 汤阴县| 五指山市| 望城县| 垦利县| 通化市| 广灵县| 双流县| 唐河县| 太谷县| 伊宁县| 凤凰县| 林甸县| 大姚县| 鹿邑县| 开化县| 莎车县| 奉节县| 乌兰浩特市| 汉沽区|