週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

競技プログラミング メモ【辞書関連】【C#】


競技プログラミングで使用する辞書方の文法を記述します。

辞書型

Dictionary<string,string> dic = new Dictionary<string,string>();
//追加
dic.Add("01","sample");
//値の取得
string name;
bool search = dic.TryGetValue("01",out name);

辞書の中に指定のキーが含まれるか

string S = Console.ReadLine();
var hs = new Dictionary<char,int>();
hs.ContainsKey(S[0])); //含まれたらtrue,含まれなかったらfalse

辞書よりもListの方がスタックオーバーフローにならない(経験談

Dictionary<int,int> A = new Dictionary<int,int>();
//上記と同じ物をListで書く場合、
List<Tuple<int,int>> A = new List<Tuple<int,int>>();
//同じ内容ならList<Tuple<int,int>>だとスタックオーバーフローにならない場合がある

辞書の文字列型Keyをソートする(ABC155C問題)

List型にしてString型のキーをソートする。(a~z順)

//ここまででdictにDictionary<string,int>でキーと値をセットします。
var ans = new List<string>();
foreach(var s in dict){
   ans.Add(s.Key);
}
ans.Sort(StringComparer.Ordinal);