华为第二次笔试

[1]单词反转https://www.cnblogs.com/imaker/p/5487496.html

华为第二次笔试_第1张图片
image.png
//单词反转
#include
#include

using namespace std;

int main()
{
    char cStr1[510], cStr2[510];

    gets_s(cStr1);

    int nLen = strlen(cStr1);

    cStr1[nLen] = ' ';
    cStr1[nLen + 1] = '\0';

    int j = 0;
    for (int i = 0; i < nLen + 1; i++)
    {
        if (cStr1[i] != ' ')
            cStr2[j++] = cStr1[i];
        else
        {
            for (int k = j - 1; k >= 0; k--)
            {
                cout << cStr2[k];
            }
            j = 0;
            memset(cStr2,'\0',sizeof(cStr2));
            if (i != nLen)
                cout << " ";
            else
                cout << endl;
        }

    }
    system("pause");

}

[2]找到第一个只出现一次的字符


华为第二次笔试_第2张图片
image.png
#include
#include

using namespace std;

char FirstSingle(char* cStr)
{
    int nA[255];
    memset(nA,0,sizeof(nA));

    char *p = cStr;

    while (*p != '\0')
    {
        nA[*p]++;
        p++;
    }

    p = cStr;
    char c = '.';
    while (*p != '\0')
    {
        if (nA[*p] == 1)
            c = *p;
        p++;
    }
    
    if (c == '.')
        cout << NULL;
    else
        return c;
}

int main()
{
    char cStr[100];
    cin >> cStr;
    cout << FirstSingle(cStr);

    system("pause");
}

[3][LeetCode 43. Multiply Strings]

你可能感兴趣的:(华为第二次笔试)