iT邦幫忙

0

[一天至少一題直到 ICPC 開賽 #018] 解題:Erase First or Second Letter(12/30)

  • 分享至 

  • xImage
  •  

Erase First or Second Letter

題目連結
打題群組:
DC群組

最近幾天一直很忙,像是禮拜四晚上被組員雷,弄了一整晚報告還要走路回家XD(公車沒了)

解題

set的原理

insert的元素如果存在 ==> 不會插入(size不變)
insert的元素如果不存在 ==> 插入(size+1)

條件

  1. 只能刪除左邊的第一個第二個

當有兩個相同的字時的組合(舉例 : aaa)
aaa aa a ==>也就是 有 n 個相同的字,組合的種類就是 n 個

當有不同的字的組合(舉例 : abc)
a b c ab ac bc ==>6個,即 1 + 2 + 3

#include <iostream>
#include <vector>
#include <string>
#include <set>

using namespace std;

int main(int argc, char const *argv[])
{
    int t;
    cin >> t;
    while (t--)
    {

        int n;
        cin >> n;
        set<char> check;
        string s;
        cin >> s;
        long long ans = 0;
        for (int i = 0; i < n; i++)
        {
            check.insert(s[i]);
            ans = check.size() + ans;
        }
        cout << ans << endl;
    }
    return 0;
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言