在字串中,尋找第一個只出現一次的字元
在字串中,尋找第一個只出現一次的字元,如str=“abddggdbacdd", 結果是c
三種方法:
1. 使用字元字典陣列,每個元素是一個結構體,第一個欄位記錄字元出現的次數,第二個欄位記錄該字元在字串中第一次出現的位置,
先遍歷一遍字串,對字元字典陣列賦值,然後遍歷一遍字元字典陣列,找到第一個欄位為1,且位置最小的字元即為需要尋找的字元。如下:
struct node{
int num; //出現次數
int index; //首次出現的位置
};
char str[100001];
scanf("%s",str);
node nodeArr[256];
int i=0;
while(i<256){
nodeArr[i].index=-1;
nodeArr[i].num=0;
++i;
}
char *p=str;
int index = 0;
while(*p!='\0'){
nodeArr[*p].index = index++;
++nodeArr[*p].num;
++p;
}
int minIndex = index;
i = 0;
while(i<256){
if(nodeArr[i].num==1){
if(nodeArr[i].index<minIndex)
minIndex = nodeArr[i].index;
}
++i;
}
printf("%c\n",str[minIndex]);
2.使用陣列
與第一種方法的區別就是該陣列也是字元字典陣列,只是每個元素是記錄該字元出現的次數,而不是一個結構體,並且在第二次遍歷與第一種方法也不同
先遍歷一遍字串,對字元字典陣列賦值,然後再遍歷一遍字串,第一個出現次數為1的字元便是需要尋找的字元。如下:
char str[100001];
scanf("%s",str);
int arr[256];
memset(arr,0,256*sizeof(int));
char *p=str;
while(*p!='\0'){
++(arr[*p]);
++p;
}
p = str;
int index = 0;
while(*p!='\0'){
if(arr[*p]==1){
printf("%c\n",*p);
break;
}
++p;
}
3.使用BitSet
char str[100001];
scanf("%s",str);
std::bitset<256> bitSet;
char *p=str;
while(*p!='\0'){
bitSet.flip(*p);
++p;
}
p = str;
while(*p!='\0'){
if(bitSet.test(*p)){
printf("%c\n",*p);
break;
}
++p;
}
相關文章
- 1.7程式設計基礎之字串02:找第一個只出現一次的字元程式設計字串字元
- 第一個只出現一次的字元——Java字元Java
- 第一次只出現一次的字元字元
- 【劍指offer】第一個只出現一次的字元字元
- JZ-034-第一個只出現一次的字元位置字元
- 每日一練(23):第一個只出現一次的字元字元
- [劍指Offer]面試題35:第一個只出現一次的字元面試題字元
- 第一個值出現一次的字元字元
- (python版)《劍指Offer》JZ34:第一個只出現一次的字元Python字元
- 求出現在字串1而沒有出現在字串2中的字元字串字元
- 統計字串中某個字元出現的次數字串字元
- js 字串中取得第一個字元和最後一個字元JS字串字元
- 查詢字串中連續出現的字元字串字元
- 獲得String字串中某個字元出現的次數字串字元
- css如何設定字串中第一個字元的樣式CSS字串字元
- js刪除字串的第一個字元JS字串字元
- 一個字串中某一個字元第n次出現的位置的函式字串字元函式
- [演算法練習及思路-leetcode劍指offer(Java解法)]No50.第一個只出現一次的字元演算法LeetCodeJava字元
- PHP 判斷一個字元是否在字串中PHP字元字串
- 找出陣列中只出現一次的數字陣列
- C++字串處理的一個例子:1.查詢一個字元在字串中第n次出現的位置。2分割字串C++字串字元
- 387. 字串中的第一個唯一字元字串字元
- 如何計算字串某個字元出現的次數字串字元
- 如何獲取字串中相同字元出現的次數字串字元
- 字元流中第一個不重複的字元字元
- 【.Net】從字串陣列中尋找數字的元素字串陣列
- 集合框架-統計字串中每個字元出現的次數案例圖解框架字串字元圖解
- 在陣列中尋找和為指定值的兩個數陣列
- 查詢字串中第一個非重複字元的3種方法字串字元
- leedcode-字串中的第一個唯一字元字串字元
- 利用HashMap統計字串各個字元出現的次數HashMap字串字元
- 只出現一次的數字 II
- 集合框架-統計字串中每個字元出現的次數案例程式碼實現框架字串字元
- 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。陣列
- 判斷字串中只包含或不包含某種字元的方法字串字元
- JZ-040-陣列中只出現一次的數字陣列
- 劍指offer 陣列中只出現一次的數字陣列
- js如何計算一個字元在字串中出現的次數JS字元字串