發表文章

webpack環境底下引入圖片的方法(JS & CSS)

首先要使用到的套件是 file-loader  該套件會將指定類型的檔案做轉換然後返回一個pubilc url 安裝 $ npm install file-loader --save-dev webpack.config.js - 設定完成後就可以在js 或是 css中引入圖片了 JS(這邊以React舉例) - CSS - 要注意的是使用"~"來告知webpack使用我的定義路徑。雖然也可以使用相對路徑,但是比較不推薦 "AppSrc"是我的自訂義路徑指向了app/src這個資料夾,可以在 webpack.config.js 中設定 -

cpe練習筆記 UVa10252 Common Permutation

題目連結 題目大意 找出共同出現的字母,然後依照字母排序輸出 解題提概念 1. 建立兩個陣列來儲存第一與第二次的字母出現次數(對應字母ascii 97-122) 2. 使用%2來判斷目前在第一次輸入還是第二次輸入 3. 印出陣列97-122 4. 選擇出現次數不為0但是數值較小的那一個來當作該字母的印出次數 5. 清空陣列、計數器+1,結束回合 程式碼 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ int i,j; char input[1024]; memset(input,0,sizeof(input)); int ascii[123]={0}; int ascii2[123]={0}; int counter = 0; int loopSta=0; while(fgets(input,1024,stdin)!=NULL){ // loopSta=counter%2; for(i=0;i<1024;i++){ if(input[i]>=97 && input[i]<=122){ if(loopSta==0) ascii[input[i]]++; else ascii2[input[i]]++; } } // int times=0; if(loopSta==1){ for(i=97;i<=122;i++){ if(ascii[i]!=0 && ascii2[i]!=0){ (ascii[i]>=ascii2[i])?(times=ascii2[i]):(times=ascii[i]); for(j=0;j<times;j++){ printf("%c",i); } } } printf("\n"); memset(ascii,0,sizeof(ascii)); memset(ascii2,0,sizeof(...

cpe練習筆記 UVa11332 Summing Digits

題目連結 程式碼 #include #include #include void func(char a[]){ int i,sum=0; for(i=0;i ='1' && a[i] =10) func(a); } int main(){ char s[11]; memset(s,0,11); while(scanf("%s",&s)!=EOF && s[0]!='0'){ func(s); printf("%s\n",s); } return 0; }

cpe練習筆記 UVa10222 Decode the Mad man

題目大意 總之就是解碼 輸入 包含一條測試案例 輸出 將測試輸入對應鍵盤左邊兩格輸出 程式碼 #include <stdio.h> #include <stdlib.h> //printf("%d",(sizeof(set)/sizeof(*set))); //注意set中的'\',第一個\表示跳脫符號('\'具有特殊意義),第二個表示真的'\' char set[47]="1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./"; //對應鍵盤 int decode(char c){ int i=0; for(i=0;i<46;i++){ if(c==set[i]){ if((i-2)>0){ return set[(i-2)]; } else{ return set[i]; } } } return -1; } void lower(char input[]){ int i = 0; for(i=0;i<1024;i++){ if(input[i]>=65 && input[i]<=90){ input[i]=input[i]+32; } } } int main(){ char input[1024]=""; int i,tmp; while(fgets(input,1024,stdin)!=NULL){ lower(input); for(i=0;i<1024;i++){ tmp=decode(input[i]); if(tmp!=-1) input[i]=tmp; } printf(input); } return 0; } 解題概念 1. 將鍵盤順序先存入一陣列 2. 將輸入放進陣列比對 3. 輸出陣列索引值-2的陣列值

cpe練習筆記 UVa10008 What's Cryptanalysis?

題目大意 Cryptanalysis是用來破解某個cryptographic的加密,Cryptanalysis通常涉及了一靜態分析,你的任務就是寫一個簡單的程式去處理他 輸入 第一行的輸入包含一個正的個位數n,這個n表示你接下來會得到的輸入行數。接下來的n行會包含0或是更多的字元(可能包含空白)。這就是你需要分析的資料 輸出 每一行的輸出包含一個大寫的字母並且跟隨著一個空白,然後是一個正整數。該數字表示這個字母出現的次數。大小寫字母被視為一樣的。結果輸出必須要依照出現次數降冪排序,如果字母出現次數相同則依照字母排序,如果該字母不曾出現則不必輸出該字母 程式碼 #include <stdio.h> #include <stdlib.h> void lower(char a[]){ int i=0; for(i=0;i<1024;i++){ if((a[i]>=65)&&(a[i]<=90)){ a[i]=a[i]+32; } } } void sort(int s[],int s2[]){ int i,j,k; for(i=97;i<=122;i++){ for(j=97;j<122;j++){ if(s[j+1]>s[j]){ //變更內容 k=s[j];s[j]=s[j+1];s[j+1]=k; //變更索引 k=s2[j];s2[j]=s2[j+1];s2[j+1]=k; } } } } int main(){ // char s[1024]=""; int i = 0; int set[123]={0}; //取得輸入 while(fgets(s,1024,stdin)!=NULL){ lower(s); //統一轉小寫 for(i=0;i<1024;i++){ if((s[i]>=97)&&(s[i]<=122)){ //對應ascii放入陣列 set[s[i]]++; } } } //宣告並初始化陣列(預備排序索引使用) int se...

不廢話的React教學 [03] - 元件的state

系列目錄 React元件 class based 與 functional 差異 在開始之前必須提一下,上一篇雖然提到寫元件可以用class或是function的方式來撰寫,但是如果你的元件使用到狀態(stateful)的話,那就必須以class的方式來撰寫,functional只適合無狀態元件(stateless) 那什麼是state呢? 簡單來說就是元件內部之狀態,舉凡會動的東西都會有狀態。 e.g. 時鐘、使用者輸入都可能觸發或使用到狀態 那就開始吧! 今天來做一個打招呼的網頁,這個東西很簡單就是讓你透過input輸入名稱(使用state記住)然後顯示在網頁上面 這次內容可能比較多,大部分我都把它註解在程式碼裡面了,不過這邊還是在提一下 1. class內部方法使用前需要先bind()來綁定 2. this指的是實體化的自己本身 3. 狀態需要有初始值在 類別建構子constructor 4. 改變狀態需要使用 setState() 5. ref:一般js我們使用document.getElementById()來獲取節點,但是在react不推薦直接操作DOM節點,這被視為非受控的( ref推薦參考文章 ) Demo See the Pen react state by Philip ( @p208p2002 ) on CodePen . --- 程式碼 ---

大學畢專開發筆記01 - 題目那檔事

在寫這邊文章的時候已經想好題目指導老師、組員也是找好了,不過專題目前本身還沒開始。目前正在試做階段與技術可行性測試,隨手做個紀錄 --- 自己覺得專題最難的點就在於"題目"吧,對於稍微有能力的人來說應該是只怕想不到,不怕做不到吧? 其實專題不是開始了之後才想題目,既然早知道大學有畢業專題那早早把題目想好不是挺好的嗎?所以我就這樣想了六個月...直到跟女朋友出去外縣市玩的時候才靈光一閃想做旅遊相關的題目,不過當然啦旅遊相關的題目早就已經爛大街了,我不喜歡做已經有的東西,那自然是要跟別人不一樣...或至少沒什麼人在做的 後來想想,現在查資訊是挺方便的...但是懶人依然不少,至少我自己就是。要出去玩還要自己做功課去哪邊玩、怎麼走、吃什麼,一整套排下來很累人的,往往都要花上3~4的時間(三天的行程的話),甚至更久 更快速的方法?出發點就是這個,最後想出來的具體作法就是事先蒐集最少資訊剩下的由系統完成。那要蒐集哪先資訊就變成目前最重要的問題,包含了ㄧ些限制後先鎖定在地區在台灣的某一縣市內,然後我不想管你到達該縣市的方法,告訴我你的起點(例如我去台中玩,在台中火車站下車)和終點(我要在台中搭高鐵回去),最後說一下你必去(或最想)的點,那我就幫你用程式補完剩下的點 我想最妙的大概就是這裡,我們常常因為想要去某個城市的某個點(例如我好想去台中吃宮原眼科阿)然後就出發去那個城市玩,但是總不可能因為只是單純去台中吃個冰吧?肯定是會排個2、3天去那個城市遊玩(如果你不是台中或是附近縣市的人的話),但是你又不想去管其他事情,因為我好懶,而且我對那個地方不熟。這時候就很適合把這一套拿出來用了,或許有些人說台灣而已沒什麼,但是如果這套模式成功套用在國外地區也是沒問題的,到時候又是不一樣的FEEL了 想得差不多了就來要把想法寫下來啊 https://hackmd.io/EwTgLAhgJgrAHAdgLRQgBgGZLANlkiARhmRigGMMAjKUAUwSjiA= 如果只是在腦袋裡面而不去紀錄終究會淪為空想或是被忘記,輕一點也可能會遺忘細節