瀏覽標籤:

C#

[C#][LeetCode] 2. Add Two Numbers

輸入兩個 ListNode 物件並將兩個相同層數的數值加總,其值若超過 10 需進位到下個節點,這題我覺得迴圈解法比遞迴更讓人腦袋卡住,可能是我功力不夠吧。

我的遞迴解答:

 

 

我的迴圈作法:

 

 

       

[C#][LeetCode] 804. Unique Morse Code Words

這題要將英文轉換成摩斯密碼,並計算出重複字串的數量,我用 Linq 輕鬆解決。

 

       

[C#][LeetCode] 8. String to Integer (atoi)

外部輸入一個字串,若開頭為數字的話或 +- 符號的話則轉換為 int 的型態,且若超過 int 的最大或最小值則取極限值為準。

我的第一版答案如下:

 

 

參考最佳解答後的優化版:

 

       

[.NET Core] EFCore Generate DbModel

使用 EFCore 的時候沒有看有地方可以像 .NET Framework 可以直接使用 VS 新增 edmx 產生好資料庫的 Model 與 DbContext,這個時候就必須靠自己拉,不過當 Table 多的時候這樣人工慢慢新增 Model 有點智障,於是乎就上網找到了 EFCore Tool 有提供一段命令可以使用。

網址:https://docs.microsoft.com/zh-tw/ef/core/miscellaneous/cli/powershell

這裡就來簡單做個筆記

  1. 首先在 Package Manager Console 輸入指令安裝 EFCore Tool

  1. 若為 Win7 需要先裝 Windows Management Framework 3.0 否則會跟我一樣出現下面的錯誤
    錯誤畫面

  2. 檔案可以在 這裡 找到下載安裝並重開機。

  3. 產生 Model 前需注意一件事情就是密碼不能有 $ 符號,不然會跟我一樣鬼打牆一小時都找不到問題,我有嘗試使用單引號包起來,但依然無法成功連線

  4. 接著在 Package Manager Console 輸入指令 (適用於 Azure SQL DataBase)

  1. 接著就可以看到 VS 裡面跑出 DbModel 與 DbContext 囉 !!
       

[C#][Visual Studio 2017] 修改預設 class 存取範圍成 public

版本:Visual Studio 2017 Enterprise

路徑:

 

範本:

 

這樣就新增 class 時就會自己加上 public 囉

       

[SideProject] Gif 產生器

動機

原作者是 ruby 寫的 sorry

感覺頗有趣的就寫個 .NET 版來玩玩了

由於很懶所以沒有優化歡迎PR

專案說明

本專案是用 Visual Studio 2017 開發

基本上只要裝了微軟爸爸的 VS 後直接 F5 就可以執行了

若有問題歡迎發 Issues

連結

GitHub:https://github.com/shuangrain/SorryNet

Blog:https://blog.exfast.me/2018/03/side-project-gif-generator/

Demo:https://exfast-sorry.azurewebsites.net/

       

[SideProject] 財政部電子發票 API 測試工具

財政部電子發票 API 測試工具

這是我最近在串接財政部 API 時自己寫的測試工具,希望能讓大家在串接測試上更加方便。
歡迎 PR 財政部的 API 清單

操作說明

  • 環境變數
  1. 簽章 (Signature):將 Request 參數按照名稱排序並以 HMAC-SHA1 加密後加在 Query 後方傳送至財政部
  2. 測試環境:將資料傳送至財政部測試環境
  3. Client 模式:以另開新頁的方式呼叫財政部 API
  • 選擇 Api
    要測試的 API

  • 財政部加密用 Key
    財政部提供的 HMAC-SHA1 加密用 AppKey

  • Api 位置
    呼叫的 API 位置

  • Request
    傳送給財政部的資料

使用方法

  1. 開啟 /src/appsettings.json
  2. 將財政部提供的 AppKeyAppID 填上去
  3. 用 Visual Studio 2017 開啟並執行即可 !!

Api 新增

開啟 /src/Json/ApiList.json 且依照下面的參數新增 Api

參數介紹

參數名稱 參數說明
TypeName Api 類型 (依此欄位排序)
ApiName Api 名稱
ApiUrl Api 位置
Param Api 需傳送的參數範本 (參數 timeStamp, expTimeStamp, uuid, appID 會被自動取代)
       

[C#][LeetCode][Easy] 657. Judge Route Circle

心得:

控制機器人走路,且最後必須回到起點,把它當作XY軸來理解的話很快就可以解答。
右 X + 1, 左 X – 1, 上 Y + 1, 下 Y – 1,最後 X 與 Y 皆為0則回傳true

問題:

Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot makes a circle, which means it moves back to the original place.

The move sequence is represented by a string. And each move is represent by a character. The valid robot moves are R (Right), L (Left), U (Up) and D (down). The output should be true or false representing whether the robot makes a circle.

Example 1:

Example 2:

答案:

答案 – Linq:

 

       

[C#][ASP.NET WebAPI] 回傳 JSON 時忽略 null 欄位

當回傳JSON格式時通常都會直接傳送model,但又不是每個欄位都有用到就有會空值的欄位出現,這時想要將null的欄位隱藏就可以用這招啦。

 

在WebApiConfig.cs中的Register方法加入以下程式碼:

       

[C#][LeetCode][Easy] 535. Encode and Decode TinyURL

題目:

TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/problems/design-tinyurl and it returns a short URL such as http://tinyurl.com/4e9iAk.
Design the encode and decode methods for the TinyURL service. There is no restriction on how your encode/decode algorithm should work. You just need to ensure that a URL can be encoded to a tiny URL and the tiny URL can be decoded to the original URL.

心得:

這題實務上的話我應該會用資料庫來存key,簡單易用不是嗎?
不過要小心的是不能使用流水號來當作tinyurl的參數,
這樣會有被猜出key的可能性,可能就隨機產生一個短的字串並檢查不能重複來當key

我的答案(轉base64):

 

我的答案(guid):