久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Java如何提取不重復的整數

140次閱讀
沒有評論

共計 2090 個字符,預計需要花費 6 分鐘才能閱讀完成。

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

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 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 i--){//for(int i=str.length()-1;i 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 如何提取不重復的整數”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計2090字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 遵义市| 上杭县| 五家渠市| 临城县| 灵璧县| 营山县| 阿荣旗| 岫岩| 上饶县| 屏南县| 黎平县| 阳山县| 英德市| 措美县| 四川省| 连城县| 思南县| 靖远县| 海林市| 绥棱县| 肃北| 内丘县| 乾安县| 山东省| 措勤县| 定结县| 古交市| 出国| 金寨县| 新兴县| 天气| 三江| 周口市| 长乐市| 杭锦后旗| 共和县| 商南县| 探索| 清镇市| 新津县| 文安县|