主頁 > 軟體設計 > C語言每日一題(四)

C語言每日一題(四)

2020-12-08 10:29:17 軟體設計

C語言作為嵌入式Linux開發的必備工具,作為嵌入式Linux開發的基礎語言,那么在面試嵌入式工程師時C語言定是面試中的重中之重 ,作為一名大三的老學長,不得不為找作業做必要準備,每天做一道C語言面試題,為面試打基礎,
Alt

本來還想著堅持每天一道面試題來準備找實習的,結果中間因為課設、電賽很多事情就給耽擱了發現距離上一次更新已經一個月過去了,決定重新拾起來繼續開干,

2020.11.17

題目描述:
如果統計的個數相同,則按照ASCII碼由小到大排序輸出 ,如果有其他字符,則對這些字符不用進行統計,

實作以下介面:
輸入一個字串,對字符中的各個英文字符,數字,空格進行統計(可反復呼叫),按照統計個數由多到少輸出統計結果,如果統計的個數相同,則按照ASCII碼由小到大排序輸出,清空目前的統計結果,重新統計,呼叫者會保證:輸入的字串以‘\0’結尾,

輸入描述:
輸入一串字符,

輸出描述:
對字符中的各個英文字符(大小寫分開統計),數字,空格進行統計,并按照統計個數由多到少輸出,如果統計的個數相同,則按照ASII碼由小到大排序輸出 ,如果有其他字符,則對這些字符不用進行統計,

示例1
輸入:
aadddccddc
輸出:
dca

題目決議:

#include<stdio.h>
#include<string.h>
#define ASC_SIZE 128
int main() 
{     
    char str[1000]; 
    int i,len;   
    while(gets(str))   
    {         
        int count[ASC_SIZE]={0};   
        int max = 0;      
        len = strlen(str);    
        for(i=0;i<len;i++)        
        {            
            count[str[i]]++;   
            if(count[str[i]] > max)   
                max = count[str[i]];  
        }         
        while(max)      
        {             
            for(i=0;i<ASC_SIZE;i++)  
            {                 
                if(count[i] == max)   
                    printf("%c",i);         
            }             max--;     
        }   
        printf("\n");     
    }   
    return 0;  
}

當我見到題目的時候我也是比較懵逼的,沒有想到比較好的解題方案,然后偷偷的打開了通過的代碼,看到了高贊的代碼,通過分析別人的代碼發現了解題思路,這道題的思想類似于桶排序的思想,定義了一個擁有ASCII碼長度的陣列(count[ASC_SIZE])并且初始化為0,然后對輸入的字串進行檢索,當遇到對應的字符時,對應下標為該字符的count['字符']值加一,因為要按照字符個數從多到少的輸出那么就可以定義一個max變數用于統計出現次數最多的字符,
輸出時,因為是要先輸出出現次數最多的字符,如果次數相同則按照ASCII碼的值從小到大進行輸出,因此優先級最高的是max,遍歷count陣列輸出對應的下標就是出現次數最多的字符,當然如果出現次數相同該怎么辦呢?這就是這道題采用桶排序的巧妙之處,因為是采用桶排序的,下標按照從小到大存盤的,我們就不需要對其進行排序,我們要做的只用關心這個地方的值是幾就可以啦!當字符出現次數相同時,我們只需要將滿足條件的下標給按照順序輸出就可以,

2020.11.18

題目描述

有ABC三組,每組10名隊員,求出ABC三組中成績最高的前五名成績并輸出,

A={65,85,65,75,78,41,89,99,98,96};
B={65,85,65,75,78,41,89,99,91,92};
C={65,85,65,75,78,41,89,97,98,90};

輸出描述:

A:99 98
B:99
C:98 97

題目決議:

#include<stdio.h>
#include<string.h>
#define ASC_SIZE 128
struct Data
{
    int num_data;
    char num_sub;
}data[30];

int sort(struct Data src[])
{
    int x,y;
    struct Data tem;
    for(x=0;x<5;x++)
    {
        for(y=x+1;y<30;y++)
        {
            if(src[y].num_data>src[x].num_data)
            {
                tem=src[x];
                src[x]=src[y];
                src[y]=tem;
            }
        }
    }
    return 0;
}
int main() 
{     
    int i;
    int A[10]={65,85,65,75,78,41,89,99,98,96};
    int B[10]={65,85,65,75,78,41,89,99,91,92};
    int C[10]={65,85,65,75,78,41,89,97,98,90};
    for(i=0;i<10;i++)
    {
        data[i].num_data=A[i];
        data[i].num_sub='A';
    }
    for(i=10;i<20;i++)
    {
        data[i].num_data=B[i-10];
        data[i].num_sub='B';
    }
    for(i=20;i<30;i++)
    {
        data[i].num_data=C[i-20];
        data[i].num_sub='C';
    }
    sort(data);
    printf("A:");
    for(i=0;i<5;i++){
        if(data[i].num_sub=='A')
            printf("%d ",data[i].num_data); 
    }
    printf("\nB:");
    for(i=0;i<5;i++){
        if(data[i].num_sub=='B')
            printf("%d ",data[i].num_data); 
    }
    printf("\nC:");
    for(i=0;i<5;i++){
        if(data[i].num_sub=='C')
            printf("%d ",data[i].num_data); 
    }   
    return 0;  
} 

這道題目當時拿到題目的第一瞬間就是想用比較暴力的方法,把三個陣列給合成一個陣列,然后再對這個合成的陣列進行排序輸出前5個同學的成績,但是看到題目的輸出格式以后發現還要分組輸出相關的資訊,這個我用了一個比較復雜的方法就是結構體陣列,結構體變數中存放了兩個變數:一個是陣列對應的值num_data,另一個是對應的分組num_sub,然后根據num_data來對結構體陣列進行排序,因為只需要輸出前5名學生的資訊,采用冒泡排序外層回圈只需要回圈5次,然后就可以按照指定格式輸出相關的資訊了,
這道題肯定還有更好更優秀的方案能夠降低時間復雜度和空間復雜度的方法,但是博主能力有限目前只想到了這一種方法,希望有那位大神看到這篇文章的時候可以在評論區分享更好的方法和思路,

2020.11.23

題目描述:
解密QQ號,題目是啊哈演算法中佇列篇中的,解密規則:首先將第 1 個數洗掉,緊接著將第 2 個數放到這串數的末尾,再將第 3 個數洗掉并將第 4 個數放到這串數的末尾,再將第 5 個數洗掉……直到剩下最后一個數,將最后一個數也洗掉,按照剛才洗掉的順序,把這些洗掉的數連在一起就是小哈的 QQ 啦!
本題目旨在理解佇列的基本操作以及簡單應用,佇列是一種特殊的線性結構,它只允許在佇列的首部( head)進行洗掉操作,這稱為“出隊”,而在佇列的尾部( tail)進行插入操作,這稱為“入隊”,當佇列中沒有元素時(即 head==tail),稱為空佇列,佇列是廣度優先搜索以及佇列優化的Bellman-Ford 最短路演算法的核心資料結構,佇列的三個基本元素是:一個陣列,兩個變數

題目決議:

#include <stdio.h>
struct queue
{
    int data[100];
    int head;
    int tail;
};
int main()
{
    struct queue q;
    int i;
    q.head=1;
    q.tail=1;
    for(i=0;i<9;i++)
    {
        scanf("%d",&q.data[q.tail]);
        q.tail++;
    }
    while(q.head<q.tail)//當佇列不為空的時候執行回圈
    {
        printf("%d ",q.data[q.head]); //列印隊首位置
        q.head++;

        //將新隊首的數添加到隊位
        q.data[q.tail]=q.data[q.head];
        q.tail++;
        q.head++;
    }
    printf("\n%d %d",q.head,q.tail);
    getchar();
    return 0;
}

將引入兩個整型變數 head 和 tail, head 用來記錄佇列的隊首(即第一位),tail 用來記錄佇列的隊尾(即最后一位)的下一個位置,你可能會問:為什么 tail 不直接記錄隊尾,卻要記錄隊尾的下一個位置呢?這是因為當佇列中只剩下一個元素時,隊首和隊尾重合會帶來一些麻煩,我們這里規定隊首和隊尾重合時,佇列為空,
現在有 9 個數, 9 個數全部放入佇列之后 head=1;tail=10;此時 head 和 tail 之間的數就是
目前佇列中“有效”的數,如果要洗掉一個數的話,就將 head++就 OK 了,這樣仍然可以保持 head 和 tail 之間的數為目前佇列中“有效”的數,這樣做雖然浪費了一個空間,卻節省了大量的時間,這是非常劃算的,新增加一個數也很簡單,把需要增加的數放到隊尾即 q[tail]之后再 tail++就 OK 啦,

2020.11.24

題目描述:
"xyzyx"是一個回文字串,所謂的回文字串就是指正讀反讀均相同的字串序列,如“席主席”、“記書記”、“ahaha”均是回文字,通過堆疊這個資料結構很容易判斷一個字串是否為回文字串,請輸入一個字串,判斷這個字串是否為回文字串,

輸入描述: 輸入一個字串

輸出描述: 如果是回文字串輸出YES,不是回文字串則回傳NO,

示例:
輸入:ahaha
輸出:YES

題目決議:

#include <stdio.h>
#include <string.h>
int main()
{
    char a[101],s[101];
    int i=0,len,mid,next,top;
    gets(a);
    len=strlen(a);
    mid=len/2-1;
    top=0;//堆疊初始化
    for(i=0;i<=mid;i++)
    {
        s[++top]=a[i];
    }
    if(len%2==0)
        next=mid+2;
    else
    {
        next=mid+1;
    }
    for(i=next;i<len;i++)
    {
        if(a[i]!=s[top])
            break;
        top--;
    }
    if(top==0)
        printf("YES\n");
    else
    {
        printf("NO\n");
    }
    
}

2020.11.25

題目描述:

快速找到未知長度單鏈表的中間節點,

題目決議:
這是一道比較經典的面試題,普通方法很簡單,就是遍歷一遍單鏈表以確定單鏈表的長度L,然后再從頭節點出發回圈L/2次到中間節點,演算法復雜度為O(3L/2),
利用快慢指標原理,設定兩個指標search和 mid分別指向鏈表的頭節點,其中search的移動速度是mid移動速度的兩倍,當*search指向末尾節點的時候,mid剛好在中間了,

Status GetMidNode(LinkList L,ElemType *e)
{
    LinkList search,mid;
    mid=serch=L;
    while(serch->next!=NULL)
    {
        if(search->next->next!=NULL)
        {
            search=search->next->next;
            mid=search->next;
        }
        else
        {
            search=search->next;
        }
        
    }
    *e=mid->data;
    return OK;
}

2020.11.26

題目描述: 如何判斷一個鏈表是否為環?

題目決議: 判斷一個鏈表是否為環,可能第一個想到的方法就是判斷鏈表的最后一個節點是否與首節點相等,但是實際上這種方法是有局限性的,當遇到6字型的環形鏈表時,就可能會出現誤判的情況,如果程式設計的不合理還很有可能陷入一個死回圈,那么我們我們可以使用快慢指標法:就是讓兩個指標同時指向鏈表,在向后遍歷的時候,一個指標每次走兩步,稱為快指標;一個指標每次走一步,稱為慢指標,如果快慢指標相遇,則說明鏈表有環,否則無環,

int testLink(Link *head)
{
	Link *t1 = head, *t2 = head;
	while(t1->next && t2->next)
	{
		t1 = t1->next;
		if (NULL == (t2 = t2->next->next))
			return 0; //無環
		if (t1 == t2)
			return 1;
	}
	return 0;
}

2020.11.27

題目描述: 創建一個鏈表,并將鏈表逆置,

題目決議:

創建一個鏈表如下:
在這里插入圖片描述
我們要將鏈表逆置,需要先定義兩個結構體型別的指標變數*p (用于記錄原鏈表的節點對應的data值)和 q(用于記錄新鏈表頭插的值),定義好節點以后將p指向data1,q指向p用來記錄原鏈表和需要新插入的值,同時讓原鏈表的頭節點指向NULL,相當于重新建立一個鏈表,
在這里插入圖片描述
當準備作業完成后就是重頭戲了,通過一個while回圈判斷p節點所指向的下一個位置如果不為空,那么就將當前p節點的值賦值給q節點,賦值給q節點后,讓q節點的下一個節點指向頭結點的下一個節點,然后讓頭節點指向q節點,
在這里插入圖片描述
通過以上步驟我們就完成了第一個節點頭插入到新的鏈表中,完成后p向后移動一個節點繼續重復以上步驟,就可以完成一個鏈表的逆置了,其代碼核心就是將原鏈表頭結點后面的節點順序頭插入到新的鏈表中,

#include<stdio.h>
#include<malloc.h>
typedef struct node
{
    int data;
    struct node*next;
 }node;
 node*creat()
 {
    node*head,*p,*q;
    char ch;
    head=(node*)malloc(sizeof(node));
    q=head;
    ch='*';
    puts("單鏈表尾插法,?結束");
    while(ch!='?')
    {
        int a; 
        scanf("%d",&a);
        p=(node*)malloc(sizeof(node));
        p->data=a;
        q->next=p;
        q=p;
        ch=getchar();
     }
     q->next=NULL;
     return(head);
 }
 void print(node*a)
 {
    puts("print ");
    a=a->next;
    while(a!=NULL)
    {
        printf("%d ",a->data);
        a=a->next;
     }
  }
 void reverse(node*head)
{
    node*p,*q;
    p=head->next;
    head->next=NULL;
    while(p)
    {
        q=p;
        p=p->next;
        q->next=head->next;
        head->next=q;
    }
} 
 main()
 {
    node*a;
    a=creat();
    print(a);
    reverse(a);
    puts("\nhaved reversed:"); 
    print(a);
     return 0;
 }

2020.11.28

題目描述:
使用遞回將一個字串進行翻轉,
輸入描述:
輸入一個字串,
示例:

輸入:hello world !
輸出:! dlrow olleh

題目決議:
通過定義一個str_reverse(char *p1,char *p2)函式,傳入的引數分別為字串的首地址和尾地址,如果需要交換的字符的首地址和尾地址重合那么就結束當前函式,如果不重合就進行交換,這里并沒有定義一個中間變數來進行交換兩個變數,而是通過數學運算得到的(交換a,b:a=a+b;b=a-b;a=a-b;),交換完成后判斷是否為最后兩個交換的數,如果是最后兩個交換的數那么就結束當前的遞回函式,

#include<stdio.h>
#include<string.h>
//#define SPACE ' '
//#define ENDL '\0'
void str_reverse(char *p1,char *p2)
{
    if(p1==p2) return;//如果需要交換的只有一個字符
    *p1=(*p1)+(*p2);
    *p2=(*p1)-(*p2);
    *p1=(*p1)-(*p2);
    if(p1==p2-1)return;//交換后判斷是否是最后兩個交換的,如果是則結束程式避免再交換
    else str_reverse(++p1,--p2);
}
int main()
{
    char str1[100];
    int len;
    gets(str1);
    len=strlen(str1);
    str_reverse(str1,str1+len-1);
    puts(str1);
    return 0;
}

2020.11.30

交換兩個引數的宏定義為:#define SWAP(A,B) (A)=(A)+(B);(B)=(A)-(B);(A)=(A)-(B);

2020.12.01

題目描述:
寫一個函式實作將記憶體中的字串進行翻轉,
輸入描述:
輸入一個字串,
示例:

輸入:The quick brown fox jumps over the lazy dog

輸出:dog lazy the over jumps fox brown quick The

題目決議:
這道題目比較方便的解法就是分為兩大步驟,第一步:將輸入的字串進行整體的翻轉;第二步:將整體翻轉后的字串對應的單詞進行翻轉,

#include<stdio.h>
#include<string.h>
#define SPACE ' '
#define ENDL '\0'
void str_reverse(char *p1,char *p2)
{
    if(p1==p2) return;//如果需要交換的只有一個字符
    *p1=(*p1)+(*p2);
    *p2=(*p1)-(*p2);
    *p1=(*p1)-(*p2);
    if(p1==p2-1)return;
    else str_reverse(++p1,--p2);
}
void word_reverse(char *str)
{
    //q2用來記錄需要交換的單詞的尾地址
    char *q1=str,*q2=str,*t;//q1用來記錄字串中,需要交換單詞的起始地址,
    while(*q1==SPACE)q1++;
    if(*q1==ENDL)return;//如果結束標志則結束函式
    else q2=q1+1;
    while((*q2!=SPACE)&&(*q2!=ENDL))q2++;
    t=q2--;//t用來記錄下一個單詞的起始地址
    str_reverse(q1,q2);//交換這個單詞的順序
    if(*t==ENDL)return;//交換后判斷是否結束
    else word_reverse(t);
}
int main()
{
    char str1[100];
    int len;
    gets(str1);
    len=strlen(str1);
    str_reverse(str1,str1+len-1);
    puts(str1);
    word_reverse(str1);
    puts(str1);
    return 0;
}

不積小流無以成江河,不積跬步無以至千里,而我想要成為萬里羊,就必須堅持學習來獲取更多知識,用知識來改變命運,用博客見證成長,用行動證明我在努力,
如果我的博客對你有幫助、如果你喜歡我的博客內容,記得“點贊” “評論” “收藏”一鍵三連哦!聽說點贊的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看,
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/231478.html

標籤:其他

上一篇:哭了!老板突然抽查演算法,成績不僅與薪資有關不合格的還要被裁,溫水煮青蛙的我該怎么辦?

下一篇:14.串列從入門到實踐(進來先看目錄)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more