C++ (gcc), 125 124 123123 115 bytes
Very boring obvious solution. We use GCC's internal header to save many includes. Conveniently, std::ranges::is_sorted() accepts equal adjacent elements, so we don't need to pass a std::less_equal<>() to it.
#include<bits/stdc++.h> int f(std::string s){return std::is_sorted(s.begin(),s.end())|std::is_sorted(s.rbegin(),s.rend());} #include<bits/stdc++.h> int f(auto s){using namespace std::ranges;return is_sorted(s)|is_sorted(s|views::reverse);} Demo program:
#include <cstdio> #include <string> int main(int argc, char **argv) { for (int i = 1; i < argc; ++i) std::printf(" %s -> %d\n", argv[i], f(std::string{argv[i]})); }