import java.util.Stack;
class Demo
{
char c;
public boolean checkParan(String word)
{
Stack<Character> sta = new Stack<Character>();
for(int i=0;i<word.length();i++)
{
c=word.charAt(i);
if(c=='(')
{
sta.push(c);
System.out.println("( Pushed into the stack");
}
else if(c=='{')
{
sta.push(c);
System.out.println("( Pushed into the stack");
}
else if(c==')')
{
if(sta.empty())
{
System.out.println("Stack is Empty");
return false;
}
else if(sta.peek()=='(')
{
sta.pop();
System.out.println(" ) is poped from the Stack");
}
else if(sta.peek()=='(' && sta.empty())
{
System.out.println("Stack is Empty");
return false;
}
}
else if(c=='}')
{
if(sta.empty())
{
System.out.println("Stack is Empty");
return false;
}
else if(sta.peek()=='{')
{
sta.pop();
System.out.println(" } is poped from the Stack");
}
}
else if(c=='(')
{
if(sta.empty())
{
System.out.println("Stack is empty only ( parenthesis in Stack ");
}
}
}
// System.out.print("The top element is : "+sta.peek());
return sta.empty();
}
}
public class ParaenthesisChehck {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Demo d1= new Demo();
// d1.checkParan(" ");
// d1.checkParan("{}");
//d1.checkParan("()");
//d1.checkParan("{()}");
// d1.checkParan("{123}");
d1.checkParan("{{{}}");
}
}
Я не думаю, что есть способ на самом деле использовать и summarise
, и summarise_at
, поскольку ясно, что мы не сможем выполнить второй после потери множества строк и столбцов.
Таким образом, вместо этого мы можем использовать mutate
, mutate_at
, а затем отбрасывать определенные строки (и, возможно, столбцы). Разница между этим и каким-то магическим применением summarise
и summarise_at
заключается в том, что первый подход не будет сбрасывать какие-либо переменные. Я думаю, это зависит от того, хорошо ли это для вас. Ниже я добавляю дополнительную строку select(-one_of(setdiff(names(zed), "team")))
, которая на самом деле удалит все столбцы, которые будут отбрасываться суммирующим списком.
zed$zonenumber2 <- zed$zonenumber # Example
zed %>%
group_by(team) %>%
mutate(
shotsMade = sum(result == "twopointmade"),
shotsAtt = n(),
shotsPct = round(shotsMade / shotsAtt),
points = 2 * shotsMade) %>%
mutate_at(
vars(contains("zone")),
.funs = funs(Made1 = sum(. == 1), Made2 = sum(. == 2),
Made3 = sum(. == 3), Made4 = sum(. == 4))) %>%
filter(!duplicated(team)) %>%
select(-one_of(setdiff(names(zed), "team"))) # May want to remove
# A tibble: 2 x 13
# Groups: team [2]
# team shotsMade shotsAtt shotsPct points zonenumber_Made1 zonenumber2_Mad… zonenumber_Made2
# <chr> <int> <int> <dbl> <dbl> <int> <int> <int>
# 1 Bos 7 10 1 14 4 4 3
# 2 Min 4 10 0 8 2 2 2
# … with 5 more variables: zonenumber2_Made2 <int>, zonenumber_Made3 <int>,
# zonenumber2_Made3 <int>, zonenumber_Made4 <int>, zonenumber2_Made4 <int>