问题 5484 --摆放羊群

5484: 摆放羊群★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 34  解决: 17
[提交][状态][命题人:]

题目描述

你正在玩“安排羊”游戏。这个游戏的目标是让羊排好队。游戏中的关卡是由长度为n的字符串描述。其中,’.'表示空格,'*'表示绵羊。在一次操作中,你可以将任意一只羊向左或向右移动一个方格,前提是该方格存在并且为空。一旦羊群排好队,游戏就结束了,也就是说,羊与羊之间不应该有空格。

例如,如果n=6,用字符串“**.*..”描述关卡,那么可能出现以下游戏场景:

位置4的羊向右移动,移动后的状态为:“**..*.”;

位置2的羊向右移动,移动后的状态为:“*.*.*.”;

位置1的羊向右移动,移动后的状态为:“.**.*.”;

位置3的羊向右移动,移动后的状态为:“.*.**.”;

位置2的羊向右移动,移动后的状态为:“..***.”;

羊排好队,比赛结束。

对于一个特定的关卡,你需要确定完成该关卡所需的最小移动数。

输入

第一行包含一个整数t(1≤t≤104):测试用例数。

然后是t个测试用例。

每个测试用例的第一行包含一个整数n(1≤n≤106)

每个测试用例的第二行包含一个长度为n的字符串,由字符'.’(空格)‘*’(绵羊)组成:关卡的初始状态描述。

可以保证所有测试用例的n之和不超过106

输出

对于每个测试用例,输出一个整数:完成关卡所需的最小移动数。


样例输入
Copy
5
6
**.*..
5
*****
3
.*.
3
...
10
*.*...*.**
样例输出
Copy
1
0
0
0
9

提示

来源

 

[提交][状态]