1.
通過鍵盤輸入一串小寫字母(a~z)組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。
比如字串「abacacde」過濾結果為「abcde」。
要求實現函式:void stringfilter(const char *pinputstr, long linputlen, char *poutputstr);
【輸入】 pinputstr: 輸入字串
linputlen: 輸入字串長度
【輸出】 poutputstr: 輸出字串,空間已經開闢好,與輸入字串等長;
【注意】只需要完成該函式功能演算法,中間不需要有任何io的輸入輸出
示例 輸入:「deefd」 輸出:「def」
輸入:「afafafaf」 輸出:「af」
輸入:「pppppppp」 輸出:「p」
main函式已經隱藏,這裡保留給使用者的測試入口,在這裡測試你的實現函式,可以呼叫printf列印輸出
當前你可以使用其他方法測試,只要保證最終程式能正確執行即可,該函式實現可以任意修改,但是不要改變函式原型。
一定要保證編譯執行不受影響
[cpp]view plain
copy
print?
//華為第一題 19:19-19:36 17分鐘
#include
#include
using
namespace std;
bool g_flag[26];
void stringfilter(const
char *pinputstr, long linputlen, char *poutputstr)
const
char *p = pinputstr;
while(*p != '\0')
else
}
poutputstr[i] = '\0';
}
int main()
//華為第一題 19:19-19:36 17分鐘
#include #include using namespace std;
bool g_flag[26];
void stringfilter(const char *pinputstr, long linputlen, char *poutputstr)
const char *p = pinputstr;
while(*p != '\0')
else
} poutputstr[i] = '\0';
} int main()
if (num > 1)
num = 1;
for (int j = size; j > 0; j--)
i +=size;
poutputstr[i++] = *(p-1);
p++;
}else
}
poutputstr[i] = '\0';
}
int main()
//華為第二題 19:40 - 20:10 中間耽誤3分鐘
#include #include using namespace std;
void stringzip(const char *pinputstr, long linputlen, char *poutputstr)
if (num > 1)
num = 1;
for (int j = size; j > 0; j--)
i +=size;
poutputstr[i++] = *(p-1);
p++;
}else
} poutputstr[i] = '\0';
}
int main()
input++;
operator1 = sum;
sum = 0;
while(*input != ' ')
input++;
*temp = '\0';
if (strlen(ope) > 1 )
while(*input != '\0') //獲得運算元2
operator2 = sum;
sum = 0;
switch (*ope)
}
int main()
//華為第三題 20:29 - 20:40
#include using namespace std;
void arithmetic(const char *pinputstr, long linputlen, char *poutputstr)
input++;
operator1 = sum;
sum = 0;
while(*input != ' ')
input++;
*temp = '\0';
if (strlen(ope) > 1 )
while(*input != '\0') //獲得運算元2
operator2 = sum;
sum = 0;
switch (*ope)
} int main()
;
gets(str); //要點1:動態的輸入1--50個整數,不能確定個數,只能用字串輸入,然後分離出來
int i=0;
int j=0;
int sign=1;
while(str[i]!='\0')
else
if(str[i]!='\0') //不用else的話,負號也會減去『0』
}
i++;
if(str[i]==',' || str[i]=='\0') //這個判斷是在i自加以後
}
sort(a,j);
printf("max number + min number = %d",a[0]+a[j-1]);
return 0;
}
void sort(int a,int n) //選擇排序
if(i!=k)
}
for(i=0;iprintf("%-5d",a[i]);
puts("");
2014 華為筆試演算法彙總
1.通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。比如字串 abacacde 過濾結果為 abcde 要求實現函式 void stringfilter const char pinputstr,long linputlen...
華為2023年機考題
輸入兩個字串 都是字母 a到z每個字母有乙個權值 1 26 不區分大小 寫 哪個字母分配哪個權值由你決定 字串的權值就是字串中所有字母的權值之和 字串中的相同字母去掉,再分配權值 include includeusing namespace std int maxweight string str1...
2014華為面試題
描述 輸入乙個正整數x,在下面的等式左邊的數字之間新增 號或者 號,使得等式成立。1 2 3 4 5 6 7 8 9 x 比如 12 34 5 67 89 5 1 23 4 5 6 7 8 9 5 樣例輸入 5 樣例輸出 21 請編寫程式,統計滿足該輸入整數的所有等式的個數。思路 考慮每個間隔的三種...